C ++ 0xが主流になると、boostの重複部分はどうなりますか?
質問
C ++ 0xが主流になった後、ブーストのオーバーラップ部分で何が起こりますか?
これまで使用していたものがすべてブーストされますか、それともライブラリを新しいstd :: stuffで更新するように適応しますか?
boostには、通常のc ++バージョンと、保守するc ++ 0xバージョンの両方がありますか?
解決
いくつかの理由で、Boostが既存のクラスを引き続きサポートすることを希望します。
最初に、しばらくの間、サポートする必要があるBoostの重複する機能を使用するコード本体があります。
次に、重複する実装により、使用したいものを選択できます。私のプロジェクトにとって重要な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のすべてのクラスが利用できます。次のドキュメントを参照してください。
http://www.boost.org/doc /libs/1_37_0/doc/html/boost_tr1.html