一些重新解釋演員轉換的結果
從一個函式指標型別到另一個函式指標型別的 reinterpret_cast
或者另一個函式引用型別的結果未指定。例:
int f();
auto fp = reinterpret_cast<int(*)(int)>(&f); // fp has unspecified value
Version <= C++ 03
從一個物件指標型別到另一個物件指標型別或者一個物件引用型別到另一個物件引用型別的 reinterpret_cast
的結果是未指定的。例:
int x = 42;
char* p = reinterpret_cast<char*>(&x); // p has unspecified value
但是,對於大多數編譯器,這相當於 static_cast<char*>(static_cast<void*>(&x))
,因此結果指標 p
指向 x
的第一個位元組。這是 C++ 11 中的標準行為。有關詳細資訊,請參閱型別雙關語轉換 。