問題タブ [static-if]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 特定のコードが発行されているかどうかを確認する
特定のコードが出力されていないことを確認するにはどうすればよいですか?
static switch
たとえば、 (or )のようなものを書き込もうとして、 2 番目のラムダの本体が放出されているstatic if
かどうかを検出したいとします。operator ()
結果のバイナリ/.o/.a に特定のコード ブロックの存在を検出できるようにするトリックは何ですか?
以前は次のことができました ( GCCの場合):
- に追加
-Wa,-adhlns="$@.lst"
しCXXFLAGS
ます。 - テストするコード ブロックにステートメントを追加
asm volatile ("nop");
します。 - ビルドしてから、ディレクトリ内のファイルへの
awk "/\#APP/, /\#NO_APP/" build/*.lst
インライン アセンブリを表示するコマンド (ハッシュ記号の代わりにスラッシュがある場合があります) を実行します。*.lst
build
- 何か
awk
を出力すると、特定のコードブロックが発行されます。
しかし、私はコンパイラパラメータを使用clang
しているため、使用できません。-Wa
方法は何clang
ですか?コンパイラ オプションを使用してアセンブリ ファイル ( .S
) を出力できることはわかって-S
いますが、大きなプロジェクトでは、ビルド中に依存関係の連鎖がある場合、そのような方法で行うことは困難です。ファイルに加えてアセンブリを出力するには?.o