定义cpp中的模板专门化? [英] Define template specialization in cpp?

查看:180
本文介绍了定义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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆