1
使用以下代碼獲得鏈接器錯誤(2001,無法解析的外部符號)。它只能與模板發生,我可以完全做無效,詮釋了同樣的事情,等頭文件中的C++模板
//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();
}
你應該閱讀有關[爲什麼模板只能在頭文件中實現] [1] [1]:http://stackoverflow.com/questions/495021/why-can -templates僅待實現的功能於該頭文件 – piotrekg2