AUTOSAR C++14 Rule A7-2-3
Enumerations shall be declared as scoped enum classes
説明
ルール定義
列挙型はスコープされた enum 型クラスとして宣言されるものとします。
根拠
スコープされない enum 型の列挙値は、その enum 型と同じスコープ内の他の識別子と競合し、コンパイル エラーを引き起こす可能性があります。次に例を示します。
enum E: std::int32_t { E0, E1};
std::int32_t E0;enum 型をスコープすることで、そのような競合を回避できます。次に例を示します。
enum class E: std::int32_t { E0, E1};
std::int32_t E0;また、enum 型をスコープすることで、列挙値が他の型に暗黙的に変換されないようにもします。
Polyspace 実装
Polyspace® は、コード内のスコープされない enum 型に対して違反を報告します。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 宣言 |
| カテゴリ: Required、Automated |
バージョン履歴
R2019b で導入