与模板类转换运算符

与模板类转换运算符

问题描述:

我想重载转换运算符, 我有下面的代码:与模板类转换运算符

template <typename _T> 
class CTest 
{ 
public : 
    _T data; 

    CTest(_T _data) : data(_data) {} 
    ~CTest() {} 

    operator _T(){ return data; } 
}; 

与微软的Visual Studio 2005中,给我下面的错误:

警告C4003:宏'T' 警告C4003:没有足够的实际参数警告C4003:宏' _T' 错误没有足够的实际参数错误C2833:'操作员L'不是公认的操作员或类型 请参阅参考类模板实例化'CTest < _T>'正在编译 错误C2059:语法错误:'newline' 错误C2334:意外的令牌在s之前'{';跳过表观功能体 错误C2833:“运算符L”是不是一个认可运营商或类型

如何可以声明操作者_T()正确?

+7

带前导下划线的名称保留用于实现。你偶然发现了一个。只要删除下划线,它会编译。 – jrok

+2

特别是首字母下划线后跟大写字母。 –