AUTOSAR C++14 Rule A8-5-3
A variable of type auto shall not be initialized using {} or ={} braced-initialization
説明
ルール定義
auto 型の変数は {} または ={} 初期化を使用して初期化しないものとします。
根拠
auto の型推測は、初期化で中かっこが使用された場合に直感に反した結果を生じます。推測される型は、初期化子から推測される型ではなく std::initializer_list<> です。
たとえば、次の定義では、
auto x{1};x の型が int ではなく std::initializer_list<int> になります。一部のコンパイラは、この定義から int 型を推測しますが、この動作はコンパイラ間で統一されていません。Polyspace 実装
チェッカーは、変数が {} または ={} 初期化を使用して初期化されている場合に auto 型を使用する変数定義にフラグを設定します。
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 宣言子 |
| カテゴリ: Required、Automated |
バージョン履歴
R2020a で導入