2017-02-06 13 views
0

古いC++アプリケーションに新しい機能を追加するには、std::unique_ptrを使用するコードを含める必要があります。アプリケーションはVS2008で構築されており、含まれているバージョンのC++標準ライブラリにはstd::unique_ptrが含まれていません。Visual Studio 2008で動作するstd :: unique_ptrを含むC++標準ライブラリの実装はありますか?

VS2008でコンパイルされ、std::unique_ptrを含むC++標準ライブラリのバージョンはありますか?

また、その機能を複製する方法はありますか?

+2

C++ 11標準をサポートする最新のコンパイラを使用してください。 –

+2

できません - unique_ptrは、古いバージョンのC++では実装できません。 –

+0

少なくともMSVS 2015アップデート3にアップグレードしてください。 – NathanOliver

答えて

0

古いC++アプリケーションに新しい機能を追加するには、std::unique_ptrを使用するコードを含める必要があります。

これを直接行うことはできません。あなたの唯一の選択肢はバックポートです。私はあなたの下でそれを行うためのオプションを言及します。

VS2008でコンパイルされ、std::unique_ptrを含むバージョンのSTLはありますか?

私には分かりません(hereもご覧ください)。また、私はあなたがC + +の標準ライブラリとSTL(これは前世紀の90年代に戻って提供された標準C++実装ではありません)を意味しないと思います。

また、その機能を複製する方法はありますか?そこ

std::unique_ptrを使用してコードのバックポートを作成するための2つの(合理的な)オプションは次のとおりです。

  1. 同様の機能は、古い規格std::auto_ptrが設けられているが、それはstd::uniqe_ptrに比べていくつかの欠陥を持っています。

  2. プレC++ 11の標準実装であるboost::unique_ptrをお試しください。
    この実装は、std::auto_ptrで提供されている多くの欠陥を修正しますが、実際の動きはまだありません(古いバージョンのVS2008と互換性があります)。

+0

@downvoterここでこの質問や回答の何が問題なのかを教えてください。 –

関連する問題