据我了解,专业化的声明或 typedef 应该导致模板类被实例化,但 gcc 似乎不会发生这种情况。例如。我有一个模板类,模板类Foo{};
我写的
class Foo<double>;
or
typedef Foo<double> DoubleFoo;
但编译后生成的目标文件的符号表不包含 Foo 的成员。
如果我创建一个instance:
Foo<double> aFoo;
那么符号当然就全部生成了。
有其他人经历过这种情况和/或有解释吗?
显式实例化的语法是
template class Foo<double>;
请参阅 C++03 §14.7.2。
希望函数在创建但不使用实例(最小的隐式实例化)后生成并链接,但不被剥离,这是一场赌博。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)