VS2008 で tr1 名前空間を使用して何かを書いています。C++xx が承認されるとどうなりますか? これは、他の C++ リビジョンで以前に発生したことがありますか? tr1 のものはまだ機能しますか、それともすべてのインクルードを変更する必要がありますか? 私は、この批准がいつか実現するという非常に大きな仮定を立てていることを認識しています. MS で働いている人や GCC に貢献している人はおそらくいないと思いますが、この種の変更の経験がある場合は、アドバイスをいただければ幸いです。
3 に答える
std::tr1 は C++1x の std の一部になります (std::tr1::shared_ptr は std::shared_ptr になります)。std::tr1 は、そのコンパイラが TR1 の実装を主張している限り存在し続けます。ある時点で、コンパイラはそのクレームを削除し、結果として std::tr1 を削除する場合があります。これはおそらく決して起こらないでしょう。
std::tr1 は、Visual Studio 2010 Beta の名前空間 std に (using ディレクティブを介して) 既に "コピー" されています。
C++0xのウィキペディアのエントリには、「新しいライブラリの大部分は、2005 年に発行されたドキュメント C++ 標準委員会のライブラリ テクニカル レポート (TR1 と呼ばれる) で定義されています。現在、TR1 のさまざまな完全実装と部分実装が以下を使用して利用できます。名前空間 std::tr1. C++0x の場合、それらは名前空間 std に移動されます.ただし、TR1 機能が C++0x 標準ライブラリに持ち込まれると、必要に応じて C++0x 言語機能でアップグレードされます.初期の TR1 バージョンでは利用できません。また、C++03 で可能だったが、元の TR1 仕様の一部ではなかった機能で拡張される可能性があります。」
tr1 は、標準の一部ではありません (省略形である論文は受け入れられませんでした)。これは、一部のコンパイラが提供する単なる規則です。彼らはほぼ間違いなく、将来にわたってそれを提供し続けるでしょう.