头文件中的C ++模板
这个问题在这里已经有了答案:
C ++编译器需要查看模板定义以执行隐式实例化。 这意味着,如果C ++编译器在调用它时知道实现,则它只能自动为模板函数调用生成目标代码。
但是,您可以依赖显式实例化。 这意味着您要求编译器为您指定的模板的特定实例生成C ++代码。 然后,在main.cpp
使用模板时,链接时C ++编译器将能够找到该实现(通过外部链接)。
//a.cpp
#include "a.h"
template<typename T> T foo( DWORD bar )
{
return T();
}
template int foo<int> (DWORD); // explicit instantiation
链接地址: http://www.djcxy.com/p/37135.html