このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
AUTOSAR C++14 Rule M16-0-5
Arguments to a function-like macro shall not contain tokens that look like pre-processing directives
説明
ルール定義
関数形式のマクロの引数に、プリプロセッサ命令に類似したトークンが含まれていてはなりません。
根拠
コンパイラは関数形式のマクロを検出すると、マクロの引数を置換コードに置き換えます。引数にプリプロセッサ命令のように見えるトークンが含まれている場合、マクロ展開時の置換プロセスが未定義になります。環境によっては、このような関数形式のマクロが予期せぬ方法で動作して、エラーやバグにつながる可能性があります。
Polyspace 実装
関数形式のマクロの引数が文字 # で始まっている場合、Polyspace® はそのマクロの呼び出しにフラグを設定します。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: プリプロセッサ命令 |
| カテゴリ: Required、Automated |
バージョン履歴
R2019a で導入