C ++標準では、これは実装で定義されていると述べており、元の型にキャストバック(を使用)すると元の値が最初に渡されることreinterpret_cast
を除いて、保証はありません。reinterpret_cast
少なくともいくつかのタイプのCスタイルのキャストは、ほとんど同じように動作します-同じ値で結果を前後にキャストします-現在、列挙とint
sを使用していますが、他の例もいくつかあります。
C ++標準は両方のキャストスタイルにこれらの定義を提供しますが、混合キャストにも同じ保証を提供しますか?ライブラリXが関数からint Y()
何らかの値を返す場合、Yの本体で初期値をenum
変換するために使用されたキャストを気にせずに、上記のキャストのいずれかを使用できますか?私はXのソースコードを持っていないので、チェックできません(そして、とにかく次のバージョンで変更される可能性があります)、そしてそのようなことはドキュメントにほとんど言及されていません。enum
int
このような場合のほとんどの実装では、両方のキャストが同じように動作することを私は知っています。私の質問は、C++標準はそのような場合について何と言っているのかということです。