定义cpp中的模板专门化? [英] Define template specialization in cpp?
本文介绍了定义cpp中的模板专门化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我可以在cpp中定义一个专门的函数,如下所示...
I can define a specialized function in a cpp like so...
// header
// header
template<typename T>
void func(T){}
template<>
void func<int>(int);
// cpp
template<>
void func<int>(int)
{}
在cpp中的专门类中定义一个方法?像这样(这不工作,我得到错误C2910:'A< int> :: func':不能显式专门
)...
How can I define a method in a specialized class in a cpp? Like so (which doesn't work, I get error C2910: 'A<int>::func' : cannot be explicitly specialized
)...
// header
// 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)
{}
推荐答案
在 .cpp
文件中使用以下语法:
Use following syntax in your .cpp
file:
void A<int>::func(int)
{
}
b $ b
这是Visual C ++ kinda功能。
This is Visual C++ kinda feature.
请参阅 MSDN C2910错误说明:
此错误也将作为在Visual Studio .NET 2003中完成的编译器一致性工作的结果生成。代码将在Visual Studio .NET 2003和Visual Studio .NET版本的Visual C ++,删除模板<> 中有效。
这篇关于定义cpp中的模板专门化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文