問題タブ [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.

0 投票する
0 に答える
62 参照

c++ - 特定のコードが発行されているかどうかを確認する

特定のコードが出力されていないことを確認するにはどうすればよいですか?

static switchたとえば、 (or )のようなものを書き込もうとして、 2 番目のラムダの本体が放出されているstatic ifかどうかを検出したいとします。operator ()

結果のバイナリ/.o/.a に特定のコード ブロックの存在を検出できるようにするトリックは何ですか?

以前は次のことができました ( GCCの場合):

  • に追加-Wa,-adhlns="$@.lst"CXXFLAGSます。
  • テストするコード ブロックにステートメントを追加asm volatile ("nop");します。
  • ビルドしてから、ディレクトリ内のファイルへのawk "/\#APP/, /\#NO_APP/" build/*.lstインライン アセンブリを表示するコマンド (ハッシュ記号の代わりにスラッシュがある場合があります) を実行します。*.lstbuild
  • 何かawkを出力すると、特定のコードブロックが発行されます。

LIVE DEMO

しかし、私はコンパイラパラメータを使用clangしているため、使用できません。-Wa方法は何clangですか?コンパイラ オプションを使用してアセンブリ ファイル ( .S) を出力できることはわかって-Sいますが、大きなプロジェクトでは、ビルド中に依存関係の連鎖がある場合、そのような方法で行うことは困難です。ファイルに加えてアセンブリを出力するには?.o