我想重载一个强制转换操作符, 我有以下代码:
template <typename _T>
class CTest
{
public :
_T data;
CTest(_T _data) : data(_data) {}
~CTest() {}
operator _T(){ return data; }
};
和MS Visual Studio 2005一样,给我以下错误:
警告C4003:宏' T'的实际参数不够 警告C4003:宏' _T'的实际参数不够 错误C2833:'运算符L'不是可识别的运算符或类型 请参阅类模板实例化'CTest&lt; _T&gt;'被编译 错误C2059:语法错误:'newline' 错误C2334:'{'之前的意外标记;跳过明显的功能体 错误C2833:'运算符L'不是可识别的运算符或类型
如何正确声明 operator _T()?
答案 0 :(得分:5)
_T
是一个WINAPI宏(请参阅Generic-Text Mappings in Tchar.h或Should I use _T or _TEXT on C++ string literals?):将_T
更改为T
。