我收到以下代码的链接器错误(2001,未解析的外部符号)。它只发生在模板上,我可以用 void、int 等完美地做同样的事情。
//a.h
template<typename T> T foo( DWORD );
//a.cpp
#include "a.h"
template<typename T> T foo( DWORD bar )
{
return T();
}
//main.cpp
#include "a.h"
void something()
{
int hello = foo<int>( 1 );
}
当我像这样将 foo 的声明放在头文件中时,它确实有效
//a.h
template<typename T> T foo( DWORD bar )
{
return T();
}