将C+模板函数定义存储在.cpp文件中我有一些模板代码,我更希望存储在CPP文件中,而不是头中的内联代码。我知道,只要您知道将使用哪种模板类型,就可以这样做。例如:.h文件class foo{public:
template <typename T>
void do(const T& t);};.cpp文件template <typename T>void foo::do(const T& t){
// Do something with t}template void foo::do<int>(const int&);template void foo::do<std::string>(const std::string&);注意最后两行-foo:do模板函数仅用于ints和std:string,因此这些定义意味着应用程序将链接。我的问题是-这是一个令人讨厌的黑客攻击,还是与其他编译器/链接器一起工作?目前我只在VS 2008中使用此代码,但希望移植到其他环境。
3 回答
森栏
TA贡献1810条经验 获得超5个赞
template<typename T>class foo{public: void bar(const T &t);};
template <class T>void foo<T>::bar(const T &t){ }// Explicit template instantiationtemplate class foo<int>;
一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
非导出函数模板、非导出成员函数模板或类模板的非导出成员函数或静态数据成员的定义应存在于显式实例化的每个转换单元中。
- 3 回答
- 0 关注
- 1770 浏览
添加回答
举报
0/150
提交
取消