Visual Studio 2010でRVO(戻り値の最適化)を無効にすることはできますか?最適化フラグを/Od
に設定すると(すべての最適化がオフになります)役立ちません。 g ++では、RVOを無効にするフラグ-fno-elide-constructors
が存在します。Visual Studio 2010で戻り値の最適化を無効にする方法は?
答えて
できません。それだけで簡単です。 RVO/NRVOは標準であり、あなたのコードは存在しないことに依存するべきではありません。
変数をvolatile
と定義して、おそらく問題を解決してください。そうでない場合は、コードを送信してください...
+1;これはちょうどランダムな推測です(そして、それがダウンボットに値する)ので、 'return my_volatile_variable;'はRVOを無効にします。 (C++ 11§12.8/ 31 item 1.) – Potatoswatter
@Potatoswatter:なぜ私の答えは単なるランダムな推測であると思ったのか不思議です。私の答えの「多分」は、本当の問題が何であるか分からなかったので、私はこの答えが分からないことを意味しました。 IMHO、この質問はhttp://meta.stackexchange.com/questions/66377/what-is-the-xy-problem – Malkocoglu
の静脈にあります。ああ、申し訳ありません。私は彼らがあなたを落胆させた理由だと思います。 – Potatoswatter
この最適化を無効にする理由は決してありません。あなたは何を達成しようとしていますか?悪質な副作用がなくても、ビルドの実行をより速くデバッグするのに役立ちます。また、RVOまたはNRVOに依存するコードがデバッグおよびリリースで同じように機能するようにします。
- 1. g ++の戻り値の最適化を無効にする
- 2. 仮想マシンで実行しているときにVisual Studio 2010のコンパイルパフォーマンスを最適化する方法は?
- 3. Visual Studio 2010でマニフェストファイルオプションを使用してUACプロンプトを無効にする方法
- 4. Visual Studio - 最適化されたコードを逆にする方法
- 5. VC2008での戻り値の最適化
- 6. 戻り値の最適化 - - C++デストラクタは
- 7. R:最適化に関する質問 - 最適化で無効な関数値
- 8. 特定のコード行に対してコンパイラの最適化を無効にする方法はありますか?
- 9. Visual Studioコードでアングルブラケットのハイライトを無効にする方法は?
- 10. Visual Studio 2010のHtmlタグペア編集を無効にする
- 11. Visual Studioのコードアプリケーションに最適な方法
- 12. JVMの最適化を無効にする方法
- 13. C++の戻り値の最適化、複数の無名の戻り
- 14. Visual Studio 2015(C++用)でSIMD自動ベクトル化の最適化のみを無効にする方法はありますか?
- 15. タプル/タイの戻り値の最適化
- 16. C++の戻り値の最適化
- 17. Visual Studioエディタでフォントスムージングを無効にする方法は?
- 18. Visual Studio 2010の無料ドキュメントツール
- 19. Visual StudioインストーラプロジェクトでMicrosoft Visual C++ 2010 SP1をパッケージ化するには
- 20. Visual Studio 2010でRDLCレポートパラメータのプロンプト値を変更する方法
- 21. Visual Studioでプロジェクト間で警告を無効にする方法
- 22. ファクトリメソッドと静的変数の割り当てからの戻り値の最適化(Visual Studio)
- 23. 戻り値が無効
- 24. Visual Studioでコンパイルエラーの警告を有効または無効にする方法
- 25. Visual StudioでAuto IDを無効にする方法2017
- 26. Visual Studioで電球を無効にする方法コード
- 27. Visual Studioでグリッドドットを無効にする方法2015
- 28. Visual Studioで自動Karmaテストを無効にする方法
- 29. Visual Studioで通知機能を無効にする方法2015
- 30. Visual Studioで「gpu」を無効にする方法「Open With」コード
RVO/NRVOには標準ではない**(C++ 0x標準、12.8節。クラスオブジェクトのコピーと移動、32項を参照) )。 Standardは単にそのような最適化を許します(g ++とVisualStudioがそれを実装しています)。私はそれに問題はない。しかし、それを無効にするためにいくつかのスイッチを持つことはいいです。多分教育目的のために。ありがとう、それはもっとはっきりしています:) – Goran
@ゴラン:もしスタンダードが明示的に許可していれば、スタンダードです。 – Puppy
許可!=必須です。このように、それは標準の一部ではなく、単に標準に矛盾しないでしょう。 –