Visual Studio 2010 と Visual Studio 2012 の両方を使用するプロジェクトがあります。2010 プロジェクトでは、tr1 のスマート ポインターの実装を使用します。このコードには複数の依存関係があるため、手間をかけずに変更することはできません。これは、std:smart_ptr を使用しようとした 2012 ソリューションにリンクされます。
コンパイル時には、smart_ptr の 2 つのバージョンが同じではないため、これはうまくいきません。
ネット上の同様の問題を読むと、ブーストを使用して正しいものを tr1 名前空間に追加することになりますが、これを完全な最後の手段以外の追加の依存関係として使用することは望ましくありません。
エラーなしでコンパイルされるように、単に std:: バージョンではなく、Visual Studio 2012 で tr1 のスマート ポインターにアクセスする方法はありますか? Visual Studio 2012 で std::tr1::shared_ptr を使用してみましたが、これは機能しません。おそらく、ヘッダーまたは含める必要があるものがあります。既に<memory>
ヘッダーが含まれており、明らかに各コード ベースは互いに独立してコンパイルされます。どんな助けでも大歓迎です
PS プラットフォームのバージョンを 110 ではなく 100 に変更することもできません。繰り返しますが、これが起こらないようにする依存関係がさらにあります。