小编Sau*_*nha的帖子

在C ++中创建成员函数模板专业化

我正在写一个我想在其中创建成员函数模板专业化的类

namespace aha
{
class Foo
{
public:
    template < typename T >
    T To() const
    {
        // some code here
    }
};
template <>
bool Foo::To < bool > () const
{
    // some other code here
}
}
Run Code Online (Sandbox Code Playgroud)

gcc正在给出错误:

实例化后“ To <bool>”的显式实例化

我只想使用成员函数的模板专门化来做到这一点,以便我的库用户在转换Foo成不同的数据类型时将获得相同的函数,例如

Foo obj;
bool b( obj.To < std::string > () );
int i( obj.To < int > () );
float f( obj.To < float > () );
Run Code Online (Sandbox Code Playgroud)

等等。

请让我知道我在代码中做错了什么。

c++ templates

5
推荐指数
1
解决办法
580
查看次数

标签 统计

c++ ×1

templates ×1