C++ 标准提到这reinterpret_cast
是实现定义的,并且不提供任何保证,除了将(使用reinterpret_cast
)转换回原始类型将导致原始值传递给 first。
至少某些类型的 C 风格转换的行为方式大致相同 - 以相同的值来回转换结果 - 目前我正在使用枚举和int
s,但还有一些其他示例。
虽然 C++ 标准为两种类型转换提供了这些定义,但它是否也为混合类型转换提供了相同的保证?如果库 X 从函数返回int Y()
某个值,可以使用上述任何一种转换,而不必担心在 Y 的主体enum
中使用什么转换将初始转换enum
为?int
我没有 X 的源代码,所以我无法检查(无论如何它可能会随着下一个版本而改变),并且在文档中几乎没有提到类似的事情。
我知道在这种情况下的大多数实现下,两种强制转换的行为都是一样的;我的问题是:C++ 标准对这种情况有什么看法——如果有的话。