1

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

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<_T>”正在编译错误 C2059:语法错误:“换行符”错误 C2334:“{”之前的意外标记;跳过明显的函数体错误 C2833:'operator L' 不是可识别的运算符或类型

如何正确声明运算符 _T()

4

1 回答 1

5

_T是一个 WINAPI 宏(请参阅Tchar.h 中的通用文本映射我应该在 C++ 字符串文字上使用 _T 还是 _TEXT?):更改_TT.

于 2012-06-14T20:28:43.177 回答