c++隐式转换:转换顺序
C++ implicit conversions: Order of the conversions
以下是来自cppreference的部分内容:http://en.cppreference.com/w/cpp/language/implicit_cast
隐式转换序列由以下顺序组成:
1)零或一个标准转换序列
2)零或一个用户定义的转换
3)零或一个标准转换序列
我认为1)->2)或2)->3)转换顺序是常见的。但是有1)->2)->3)的例子吗?
这个呢:
struct X {
X(int a) {}
};
const X x = 5.0;
首先是double
到int
的标准转换,然后是int
到X
的自定义转换,然后是X
到const X
的标准转换。(从non-const
到const
的资格调整是根据c++参考标准进行的一种标准转换)
我不是100%确定最后一次转换,也许我们可以说对象已经构造为const?我们也可以用volatile
代替const
相关文章:
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 在 OpenGL 中转换应用顺序让我感到困惑
- 在 OpenGL 中计算矩阵时,转换的正确顺序是什么?
- 用户定义的转换顺序(以C++为单位)
- 以正确的顺序从十进制转换为二进制
- Eigen::将稀疏矩阵转换为行顺序或列顺序
- 如何将整数向量转换为 2 位十六进制并按顺序添加到 c 字符串?
- 将Parralel CUDA程序转换为顺序运行
- Pthreads - 将顺序程序转换为并行程序
- 是否有可以将每个双精度转换为唯一uint64_t,保持精度和顺序的功能?(为什么我找不到?
- 将网络字节顺序(大字节序)转换为小字节序
- 无符号 int 和双转换顺序
- 将主机字节顺序转换为网络字节顺序有时会导致奇怪的结果
- openGL:使用glm进行转换的顺序是什么
- 将范围有限的浮点数转换为无符号的整数,以保持排序顺序和精度
- 如何使用 openMP 将顺序程序转换为并行程序
- 如何将 std::vector 转换为 std::set 而不会丢失顺序
- std::转换顺序保证
- c++隐式转换:转换顺序
- 语言律师- c++:隐式转换顺序