我可以在cpp中定义一个专门的函数,就像这样......
// header
template<typename T>
void func(T){}
template<>
void func<int>(int);
// cpp
template<>
void func<int>(int)
{}
如何在cpp中的专门类中定义方法?像这样(这不起作用,我得到error C2910: 'A<int>::func' : cannot be explicitly specialized
)......
// header
template<typename T>
struct A
{
static void func(T){}
};
template<>
struct A<int>
{
static void func(int);
};
// cpp
template<>
void A<int>::func(int)
{}
答案 0 :(得分:5)
在.cpp
文件中使用以下语法:
void A<int>::func(int)
{
}
这是Visual C ++的一种功能。
有关详细信息,请参阅MSDN C2910 error description:
由于在Visual Studio .NET 2003中完成的编译器一致性工作,也会生成此错误:对于代码,将在Visual C ++的Visual Studio .NET 2003和Visual Studio .NET版本中有效,删除模板&lt;&gt; 。