C++0x が主流になると、boost のオーバーラップ部分はどうなりますか?
ブーストには以前のすべてが含まれていますか、それともライブラリを適応させて新しい std:: のもので更新しますか?
ブーストには、通常の c++ バージョンと、維持する c++0x バージョンの両方がありますか?
いくつかの理由から、Boost が引き続き既存のクラスをサポートすることを期待できます。
まず、Boost の重複する機能を使用するコード本体があり、しばらくの間サポートする必要があります。
第 2 に、実装が重複しているため、どちらを使用するかを選択できます。私のプロジェクトにとって重要な std::Frob と Boost::Frob の間にはいくつかの違いがあるかもしれません。
ただし、長期的には、アプリケーション作成者とツール プロバイダーの両方が標準に移行することを期待しています。これにより、std:: を使用するリスクが少なくなります。
私は Boost とは関係がなく、彼らが何をするかはわかりませんが、Boost はそのままにしておくようです。
すでに TR1 (VS 2008 機能パック) がリリースされており、Boost はそのままでした。多くのユーザーはまだ Boost や TR1 を採用していないため、私の予測では、少なくとも今後 5 年間は、Boost ライブラリと C++0x ライブラリが異なる名前空間に存在し、C++0x ユーザーだけでなく C++ ユーザーも利用できるようになるでしょう。
名前空間は、Boost 開発者にとってこれをあまり問題にしません。ブースト ライブラリと標準ライブラリは別々の名前空間に存在するため、両者の間に直接的な競合はありません。したがって、名前空間 std への変更 (std::tr1 の追加など) は、Boost に直接影響しません。
ただし、両方のライブラリ (std と boost) をグローバル名前空間にインポートすると、問題が発生することに注意してください。
Boost TR1ドキュメントからの次の引用も、BoostのTR1コンポーネントの実装に関するいくつかの光を当てており、対応するBoostライブラリが当面維持されることを示唆しています。
TR1 ライブラリは、標準ライブラリ拡張に関する C++ テクニカル レポートの実装を提供します。このライブラリ自体は TR1 コンポーネントを実装していません。むしろ、標準ライブラリの TR1 実装 (存在する場合) をインクルードするシン ラッパーです。それ以外の場合は、Boost ライブラリの同等物をインクルードし、それらを名前空間 std::tr1 にインポートします。
tr1のことですか?
Boost はすでに tr1 をサポートしています。std::tr1 に採用された boost のすべてのクラスは、boost のこの名前空間で利用できます。次のドキュメントを参照してください。
http://www.boost.org/doc/libs/1_37_0/doc/html/boost_tr1.html