##A.hh
template<class T> void func(T t) {}
template<> void func<int>(int t) {}
void func2();
##A.cpp
void func2() {}
##main.cpp
func("hello");
func(int());
我得到的錯誤是:錯誤LNK2005: 「無效__cdecl FUNC(INT)」(?? $ FUNC 3 H @@ YAXH @ Z)在A.OBJ已經定義, 一個或多個定義的符號發現函數模板專業化編譯錯誤
函數模板特化不被視爲普通函數模板嗎?它看起來像它將在A的目標文件中。
是什麼'func2'有什麼關係呢? – 2011-03-24 09:48:58
從你的錯誤信息我假設你使用VC。你的程序對VS2005工作正常 – mkaes 2011-03-24 09:49:51
@ Space_C0wb0y所以我有一些東西要放在A.cpp文件中 – hidayat 2011-03-24 09:51:31