kra*_*ik3 6 c++ standards reinterpret-cast c++14
考虑以下程序:
struct A{};
int main()
{
A a;
A b = a;
A c = reinterpret_cast<A>(a);
}
Run Code Online (Sandbox Code Playgroud)
编译器(g++14)抛出一个关于invalid cast from type 'A' to type 'A'. 为什么强制转换为相同类型无效?
这是不允许的,因为标准是这么说的。
您可以使用的允许转换集相当有限reinterpret_cast。参见例如cppreference。例如,列出的第一点是:
1) 整型、枚举型、指针型或成员指针型的表达式可以转换为它自己的类型。结果值与表达式的值相同。(自 C++11 起)
但是,将自定义类型(无指针!)强制转换为自身并不在列表中。无论如何你为什么要这么做?
| 归档时间: |
|
| 查看次数: |
205 次 |
| 最近记录: |