【发布时间】:2017-03-25 04:17:25
【问题描述】:
在reinterpret_cast的入口处,cppref说:
整数、枚举、指针或指向成员的指针的表达式 type 可以转换为自己的类型。结果值与表达式的值相同。 (C++11 起)
但是,无法编译以下代码(clang 5.0 和-std=c++1z):
enum class A : int {};
int main()
{
A a{ 0 };
reinterpret_cast<int>(a); // error : reinterpret_cast from 'A' to 'int' is not allowed
}
为什么reinterpret_cast 的行为不像 C++ 标准所说的那样?
【问题讨论】:
-
那句话没有提到
reinterpret_cast<int>(a);。它确实说明了reinterpret_cast<A>(a);
标签: c++ c++11 casting type-conversion standards