4

C ++準拠のコンパイラ(Visual Studio、g ++など)で任意の種類のログを有効にして、一時オブジェクトがいつ作成されるかを検出できるかどうかを誰かが知っていますか?

例えば:

関数があるとしましょうが、これを次のf(char x)ように呼び出しますf(46)

ログに表示されます-

temporary char created promoting int @ function param f(46)(またはこのようなもの)

VSコンパイラのスイッチオプションを読みましたが、これはオプションではないようです。

新しい標準には、移動セマンティクスのほとんどの一時的なものを検出するために使用できる(&&)の概念があることを理解していますrvalue referenceが、これには新しいコード/準拠コンパイラの追加が含まれます。

それで、これはできますか?それとも、コンパイラに関するこの特権的な知識ですか?

4

1 に答える 1

0

IDE のインライン注釈の方が便利です (これらの一時的な値を最小限に抑えて最適化したいのではないでしょうか?)。実際には、GCC または g++ を変更して、Visual Studio プラグインなどと通信させるのが最も簡単な方法です。彼らは、レジスタの割り当てとすべてに注釈を付けることができました。うわー、それは実際に本当に役に立ちます。

そのような努力を除けば、私は何も知りませんが、アセンブリを読むことを学ぶのが最善の方法です. Visual Studio では、コンパイルされたアセンブリをソースとインラインで表示させることができます。これは非常に便利です。

于 2012-10-25T14:48:58.317 に答える