使用模板类的Cast运算符

wil*_*lll 1 c++ templates visual-studio-2005

我想重载一个强制转换操作符,我有以下代码:

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

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

    operator _T(){ return data; }
};
Run Code Online (Sandbox Code Playgroud)

和MS Visual Studio 2005,给我以下错误:

警告C4003:宏" T"警告的实际参数不够C4003:宏' _T'错误的实际参数不足 C2833:'运算符L'不是识别的运算符或类型请参见类模板实例化'CTest <_T>'正在编译错误C2059:语法错误:'newline'错误C2334:'{'之前的意外标记; 跳过明显的函数体错误C2833:'运算符L'不是可识别的运算符或类型

如何正确声明operator _T()