关于一个较复杂的类模板的演绎问题
C++ TEMPLATE中有如下一段程序,看它的解释是可以演绎的,但我用的vs2008怎么也编译通过不了,不知道什么原因,代码和解释都在下面,望前辈指正.程序代码:
template <int N> class X { public: typedef int I; void f(int) { } }; // template<int N> void fppm(void (X<N>::*p)(typename X<N>::I)); int main() { fppm(&X<33>::f); // fine: N deduced to be 33 }
这是编译结果:
Error 1 error LNK2019: unresolved external symbol "void __cdecl fppm<33>(void (__thiscall X<33>::*)(int))" (??$fppm@$0CB@@@YAXP8?$X@$0CB@@@AEXH@Z@Z) referenced in function _main fppm.obj
Error 2 fatal error LNK1120: 1 unresolved externals E:\C++Templates_examples\projects\fppm\Debug\fppm.exe