用extern显式实例化声明

Ton*_*ion 3 c++ templates c++11

我正在阅读C++标准草案n3485中的14.7.2,它说:

2显式实例化的语法是:explicit-instantiation: externopt模板声明

有两种形式的显式实例化:显式实例化定义和显式实例化声明.显式实例化声明以extern关键字开头.

看到模板声明和定义总是放在标题中,我从来没有extern在模板上看过声明.粗体句的确是什么意思?

另外为什么实例化会关心extern

R. *_*des 6

它告诉编译器不要在此TU中实例化该模板.

请注意extern,如果您希望代码实际链接,则应在一个TU中实例化(不带位).