外部显式实例化声明 我在C++标准草案N385中阅读了147.2,它表示:
2显式实例化的语法为: 显式实例化:外部显式实例化声明 我在C++标准草案N385中阅读了147.2,它表示:,c++,templates,c++11,C++,Templates,C++11,2显式实例化的语法为: 显式实例化: externopt模板声明 显式实例化有两种形式:显式实例化定义和显式实例化声明显式实例化声明以extern关键字开始。 看到模板声明和定义总是放在标题中,我从来没有在模板上看到带有extern的声明。那个粗体的句子到底是什么意思 还有,为什么实例化会关心extern 它告诉编译器不要在此TU中实例化该模板 请注意,如果您希望您的代码实际链接,它应该在一个TU中实例化(没有extern位)。“实例化为什么会关心extern?”因为这是显式实例化声明所使用的语
extern
opt模板声明
显式实例化有两种形式:显式实例化定义和显式实例化声明显式实例化声明以extern
关键字开始。
看到模板声明和定义总是放在标题中,我从来没有在模板上看到带有extern
的声明。那个粗体的句子到底是什么意思
还有,为什么实例化会关心
extern
它告诉编译器不要在此TU中实例化该模板
请注意,如果您希望您的代码实际链接,它应该在一个TU中实例化(没有extern
位)。“实例化为什么会关心extern?”因为这是显式实例化声明所使用的语法。为什么编译器会忽略更改衰减含义的有效语法?像extern-inti代码>它说“这是一个声明,不是一个定义,在程序的某个地方会有一个定义”