AUTOSAR C++14 Rule A13-6-1
Digit sequences separators ' shall only be used as follows:(1) for decimal, every 3 digits, (2) for hexadecimal, every 2 digits, (3) for binary, every 4 digits
R2021a 以降
説明
ルール定義
Digit sequences separators ' shall only be used as follows:(1) for decimal, every 3 digits, (2) for hexadecimal, every 2 digits, (3) for binary, every 4 digits.
根拠
C++14 以降、数字列内の数字を区切るための区切り記号 ' を使用して可読性を高められるようになりました。コード全体の一貫性を保つために、数字列区切り記号を入力する場合は次の規則に従ってください。
10 進値では、
3'000'000のように、右から 3 桁ごとに区切り記号を配置します。16 進値では、
0xF'FF'0Fのように、右から 2 桁ごとに区切り記号を配置します。バイナリ値では、
0b1001'0011'0100のように、右から 4 桁ごとに区切り記号を配置します。
コード全体の一貫性が保たれていれば、開発者やコード レビュー担当者は、より簡単にコードを確認でき、数字列区切り記号から値の桁数を推定できるようになります。
Polyspace 実装
このチェッカーは、AUTOSAR C++14 ルールの仕様に従っています。
整数の場合、チェッカーは右からチェックを開始します。たとえば、チェッカーは値 45'30'00 を違反として検出します。これは、数字列区切り記号が想定に反し、右から 3 桁後にではなく 2 桁後に出現しているためです。
浮動小数点数の場合は、チェッカーは小数点からチェックを開始して外側に進みます。チェッカーは以下のようにチェックします。
小数点より前の部分は右から。
小数点より後の部分は左から。
仮数と指数を伴う浮動小数点数の場合は、整数と同じルールが指数に適用されます。たとえば、10 進表記では、チェッカーが右から指数をチェックして、数字列区切り記号が 3 桁ではなく 2 桁ごとに配置されている場合などに違反を検出します。
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: オーバーロード |
| カテゴリ: Required、Automated |
バージョン履歴
R2021a で導入