具有模板类的强制转换运算符
Cast Operator with template class
我想重载一个强制转换运算符,我有以下一段代码:
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
。
相关文章:
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 构造函数和转换运算符之间的重载解析
- 分配给转换运算符失败-C++
- 转换运算符不适用于sleep_until
- 继承模板化转换运算符
- 模板转换运算符在 clang 6 和 clang 7 之间的区别
- 如何在模板化转换运算符中消除此构造的歧义?
- 为什么选择转换运算符的重载?
- 如何避免强制转换运算符 () 和访问运算符 [] 冲突?
- 如果可能的话,C++总是更喜欢右值引用转换运算符而不是常量左值引用吗?
- 了解转换运算符的选择C++
- 多个隐式转换运算符
- 这个typedef和转换运算符语法是什么意思
- 为什么转换运算符调用复制构造函数两次,而等效函数只调用它一次
- 类模板忽略了用户定义的转换运算符(非模板不忽略)
- 为什么在std::for_each()返回时调用转换运算符
- 为什么 std::optional 的强制转换运算符被忽略了
- 使用用户定义的转换运算符推导函数模板参数
- 模板转换运算符的分辨率不明确
- 统一初始化是隐式发生的,即使 int 强制转换运算符是使用 explicit 关键字声明的.原因是什么?