列挙型のレイアウトは、基になる型と互換性がありますか?

Shea Levy

私はn3690、次のC++14標準のドラフトを調べています、そして私はセクション7.2パラグラフで見ます9

2つの列挙型は、基になる型が同じである場合、レイアウト互換です。

ただし、列挙型がその基になる型とレイアウト互換であると言うものは何も見つかりません。「基礎となるタイプ」が何を意味するかについての合理的なセマンティクスを考えると、これが従うべきであることは私には明らかなようですが、実際には標準によって保証されていますか?

TemplateRex

いいえ、これを指定する規格からのブラックレターの引用はありません。最も近いのは、同じ段落のポイント7です。

7 [...]基になる型は、列挙で定義されたすべての列挙子の値を表すことができる整数型です。すべての列挙子の値を表すことができる整数型がない場合、列挙は不正な形式になります。[...]

さらに、4.5インテグラルプロモーション[conv.prom]は言う

4基になる型が固定されている(7.2)スコープのない列挙型のprvalueは、基になる型のprvalueに変換できます。

コメントで指摘されているように、列挙型とその基になる型の間でエンディアンが異なる(不正なIMO)実装が存在する可能性があります。それは実装の品質の問題になります。すべての実用的な目的のために、レイアウトの互換性が期待されるべきです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

不完全な列挙型と完全な列挙型は互換性のあるタイプですか?

wcf-整数値を変更する場合、列挙型には下位互換性がありますか?

列挙型制約はエラー「署名と実装に互換性がありません...」を返します

列挙型の基になる型としてブール値を使用する方法はありますか?

文字列は文字列列挙型と互換性がありません

データ型に互換性があるにもかかわらず、配列割り当てに互換性がないのはなぜですか?

ポインタと型キャストの両方が正しい型であるにもかかわらず、メモリを割り当てるときにmallocが「互換性のない型」エラーを出し続けるのはなぜですか

列挙型と互換性のあるタイプ

.Rpres(rmarkdownではない)2列レイアウトはIEと互換性がありません

型boolの基礎となる列挙型クラスを宣言する利点はありますか?

タイプスクリプトで文字列を列挙型に変換するときに、インデックス式が列挙型の「数値」型ではないため、要素は暗黙的に「任意」の型になります

java8ストリームは、互換性のない型をスローするAPI:オブジェクト[]は整数に変換することができない[]整数アレイに文字列配列を変換するとき

互換性のある型を返すときに明示的なstd :: moveが必要なのはなぜですか?

互換性のある列挙型間の直接キャストはどのくらい危険ですか?

不明な文字列列挙型引数にはどのタイプを使用する必要がありますか?

C ++の列挙型に静的ポインタアドレスを格納する方法はありますか?

列挙型rawValueをその型にダウンキャストする方法はありますか?

コンパイルエラー:配列を配列に割り当てようとすると、互換性のない型「char」から「int」に割り当てます

互換性のない型:推論変数Tに互換性のない境界があります

Javaには下位互換性がありますが、jdkを1.6から1.8にアップグレードするときに、多くのライブラリをアップグレードする必要があるのはなぜですか。

Typescriptで列挙型を互換性のあるものにするためのベストプラクティスは何ですか?

FirebaseMessagingServiceクラスを使用すると、エラー「戻り値の型intはインテントと互換性がありません」

範囲外の列挙型変換は、基になる型の外の値を生成できますか?

自己完結型のベクトルループで削除する場合の「ベクトルイテレータに互換性がありません」

互換性のない型が見つかりました:必須:注釈のデフォルトの列挙型

列をある列挙型から別の列挙型に変換できないのはなぜですか?

Pythonの下位互換性のあるコードで型ヒントを使用する方法はありますか?

エラー:「char *」から「char [4000]」への割り当てに互換性のない型があります

列挙型を使用する代わりに、スイッチケースで列挙型の序数を使用する重要な理由はありますか?

TOP 一覧

  1. 1

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  2. 2

    Ansibleで複数行のシェルスクリプトを実行する方法

  3. 3

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  4. 4

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  5. 5

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  6. 6

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  7. 7

    パンダは異なる名前の列に追加します

  8. 8

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  9. 9

    グラフ(.PNG)ファイルをエクスポートするZabbix

  10. 10

    Chromeウェブアプリのウェブビューの高さの問題

  11. 11

    ラベルとエントリがpythontkinterに表示されないのはなぜですか?

  12. 12

    Windows 10の起動時間:以前は20秒でしたが、現在は6〜8倍になっています

  13. 13

    mutate_allとifelseを組み合わせるにはどうすればよいですか

  14. 14

    Reactでclsxを使用する方法

  15. 15

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

  16. 16

    テキストフィールドの値に基づいて UIslider を移動します

  17. 17

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  18. 18

    MLでのデータ前処理の背後にある直感

  19. 19

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

  20. 20

    Pythonを使用して同じ列の同じ値の間の時差を取得する方法

  21. 21

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

ホットタグ

アーカイブ