小编Aar*_*ham的帖子

如何防止特定模板的隐式模板实例化?

我想阻止特定模板化类的所有隐式模板实例化,以防止它被实例化到每个翻译单元中.

看起来我的选择是:

  1. 在gcc的命令行上使用-fno-implicit-templates.这会抑制所有隐式模板实例化,而不是我想要的.我只想为单个模板阻止它.
  2. 使用C++ 11"extern模板".但这只会抑制特定的显式实例化.我不想为每个可能的模板参数列表键入"extern模板"行,这个模板可能会被实例化.

所以我需要介于两者之间.如果有这样的话会很高兴:

 extern template class Foo; // suppress all implicit instantiations of Foo
Run Code Online (Sandbox Code Playgroud)

(注意缺少模板参数.)任何想法?

c++ templates c++11

8
推荐指数
1
解决办法
921
查看次数

标签 统计

c++ ×1

c++11 ×1

templates ×1