具有模板类的强制转换运算符

Cast Operator with template class

本文关键字:转换 运算符      更新时间:2023-10-16

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

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:"运算符 L"不是可识别的运算符或类型

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

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