主にコア コンポーネントに C++ を使用する製品に取り組んでいます。Visual C++ を Windows プラットフォームの主要なコンパイラとして使用し、エディタとデバッガを主要な開発環境として使用していますが、Microsoft 固有のテクノロジは使用していません。他のプラットフォームでは、コンパイルに gcc を使用します。
私のコード ベースは、エミュレートされた右辺値参照 (Boost move ライブラリを使用)、可変個引数テンプレート (Boost プロセッサを使用)、および場合によっては式テンプレートを頻繁に使用します。
C++11 に切り替えて、右辺値参照、完全転送、コンストラクターのデフォルトと削除、可変個引数テンプレート、および auto と decltype を使用して、よりクリーンなコード ベースを取得したいと思っています。
そうする場合は、既存のコードを簡素化するために手直しを行う可能性があります (テンプレート エイリアスとおそらく constexpr を使用)。その場合、mingw を使用して Windows プラットフォーム用の gcc に切り替える必要があります。これは、Visual Studio にはデフォルトと削除、および可変個引数テンプレートの実装がないためです。また、デバッガーと別のコード エディターとして gdb に切り替える必要があります。
私にとっては、コードのシンプルさとパフォーマンスの点でメリットが非常に大きいように見えますが、安定性、可用性 (Android などの一部のプラットフォームで)、デバッグ (Visual Studio デバッガー用に開発された多くの視覚化ツールがあるため、Visual Studio から gdb への移行) とコードエディター (大量のテンプレート コードではなく、オートコンプリート、リファクタリングなどの使用はあまり見られず、Codelite、Codeblocks、QtCreator はビルド システムでうまく機能します) が問題の一部です。
商用またはオープンソースの中規模/大規模プロジェクトで、上記の C++11 機能のいずれかを使用/使用する予定があるかどうかを知りたいですか? また、そのような移行を行うにはどのくらいの労力が必要ですか?
実際の経験、ヒント、または知恵の言葉は、私が決定を下すのに役立ちます.