如何在c++中定义默认类型转换操作符
How to define a default typecast operator in C++
我为几个类型重载了类型转换操作符。现在我想为所有其他类型转换调用特定的函数。我该怎么做呢?
明显但恼人的问题。
-
operator T()
中缺少typename
template <T> operator T();
必须是
template <typename T> operator T();
-
访问问题。
将
class Foo
改为struct Foo
或将函数改为public
-
类定义末尾缺少
;
。
主要问题是不能专门化成员函数模板。但是,您可以重载它们,效果相同。
struct Foo {
template <typename T>
operator T();
operator int();
operator char();
};
相关文章:
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- C++中的双指针类型转换
- 逐位操作的隐式类型转换
- 模板中的类型转换
- 在 C++(和 C)中进行类型转换时明显不一致
- 字符类型转换不兼容
- 将复杂的非基元C++数据类型转换为 Erlang/Elixir 格式,以使用 NIF 导出方法
- C++:用户定义的显式类型转换函数错误
- 将类指针类型转换为键时出错
- 通过引用传递参数时C++类型转换
- 在 C++ 中将一个模板类型的对象类型转换为另一个模板类型
- C++显式类型转换(C 样式强制转换)的强制表示法和static_cast的多种解释
- 模板类默认类型和条件
- C++无效的函数类型转换
- 在将派生类指针类型转换为派生类指针后,从基类指针调用派生类函数
- 如何将Windows产品类型转换为名称?
- 默认构造函数、POD初始化和C++11中的隐式类型转换
- 如何在c++中定义默认类型转换操作符
- 错误:不明确的默认类型转换(c++)