プロジェクトにclang-tidyを設定しようとしています。きれいな出力ができるようになり、可能な場合は-fixモードの使用を奨励します。ただし、例外が必要な個別のケースがあります。
使える程度に
#pragma clang diagnostic Push
#pragma clang diagnostic ignored "-Wreserved-id-macro"
// Code that is being specially exempted
#pragma clang diagnostic pop
コンパイラの警告をローカルで無効にしたい同等の場合、clang-tidyから同様のことを行うことは可能ですか?
私が試してみました
#pragma clang diagnostic Push
#pragma clang diagnostic ignored "readability-identifier-naming"
// Code that is being specially exempted
#pragma clang diagnostic pop
また、clang
をclang-tidy
に置き換えました。残念ながら、プラグマターゲットとしてclang
を使用し、通常のclangでコンパイルすると、コンパイル警告が表示されます
warning: pragma diagnostic expected option name (e.g. "-Wundef") [-Wunknown-pragmas]
そして
warning: unknown pragma ignored [clang-diagnostic-unknown-pragmas]
clang
の代わりにclang-tidy
を使用すると、コンパイル時にまた、ソースで実行したときにclang-tidy
自体が出力する内容に影響を与えません。
これは、x86_64 Linuxのclang
およびclang-tidy
3.8に対応しています。
文字列NOLINTを含むコメントを、clang-tidyで無視する行のどこかに追加するだけです。例えば:
badcode; // NOLINT
// NOLINTNEXTLINE
badcode;
badcode; // NOLINT(cert-err-58-cpp)
ドキュメント here を参照してください。