5

私はまだ Boost ユーザーではありません。しかし、私はできるだけ早くそれに入る予定です。ただし、Boost についてはほとんど心配していません。今後の C++0x との名前の競合や相違点についても心配しています。(おそらくそれは本当の問題ではありませんが、たとえば、boost ラムダ構文はかなり醜く、BOOST_FOREACH は見た目が攻撃的で、その他は審美的な個人的な見解にすぎません)。

ライブラリBoost.Threadjust::threadによって実装されているように見えるTR2に本当に興味があります。どちらも Anthony Williams によって書かれ、保守されているようです。

しかし、just::thread は TR2 に厳密に準拠していると主張しています。

あなたの誰かが私にどちらか一方を使用するように指示するかどうか知りたかった. just::thread は無料ではありませんが、本当に TR2 のようになるとしたら、私は誘惑されます。

何か考えはありますか?

4

3 に答える 3

5

現在、私は Linux で、boost、just::thread ライブラリ、および gcc g++ 4.5 コンパイラのいわゆる「実験的」C++Ox 機能を使って実験しています。スレッド化に関しては、私が書いたコードが just::thread と g++ コンパイラに 100% 互換性があることを発見しました。ブースト ライブラリ (1.43) は、前の 2 つとは明らかに互換性がありません。ただし、私のプロダクション コードでは、boost ライブラリを使用しています。

名前の衝突は、boost、just::thread、および g++ コンパイラで利用可能な名前空間を正しく賢明に使用することで問題になることはありません。C++Ox g++ 機能で just::thread を使用しても問題ありません。実際、可変個引数テンプレートなどのこれらの機能を使用することが just::thread によって推奨されています。

于 2010-08-24T10:18:13.450 に答える
4

ライブラリが「TR2 のようだ」と言うのは時期尚早だと思います。TR2 は、 C++0x 自体がまだリリースされていない後にリリースされます。

ただし、Boost.Thread ライブラリは、標準化委員会の開発に従うことも主張しています。

たまたまブーストに移行したプライベート ライブラリとは対照的に、Boost は高品質に取り組んでおり、Boost コミュニティは共同でライブラリを維持しているため、「オリジナル」よりも任意の Boost ライブラリを好みます。

名前の衝突を恐れる必要はありません。現在名前空間にあるものはboost::名前空間にとどまり、すべての TR2 はおそらくstd::tr2::.

于 2010-08-24T09:49:21.087 に答える
-1

現時点で最善のアドバイス-上記のどれでもない:-)

絶対に差し迫ったニーズがない限り、C ++ 0xが最初に落ち着くまで待つだけで、多くの時間と苦痛を節約できます。これには約2年かかります。誰かがあなたに動くターゲットを追いかけるように頼んでいるなら-最初にお金を見るように頼んでください:-)そして大きな保持者:-))

他の多くの場合と同様に、最初に「私の実際のニーズは何か」と自問するのが最善ですか。マルチスレッド開発を学習している場合は、C#またはJavaで時間を過ごす方がはるかに簡単です。本番レベルのシステムの開発を開始する必要がある場合は、ターゲットプラットフォームをすでに知っているので、ターゲットプラットフォームでのマルチスレッド用の試用版ライブラリであり、デバッガーを完全にサポートしているものを使用するのが最善です。 。繰り返しになりますが、完全なデバッガーのサポートと統合が、スレッドランドでの生活の質を決定します。

Boostに触れる場合は、他の数十のBoost-somethingファイルに依存しないように十分な時間を確保してから、さらに数十のファイルに依存しないようにしてください。自動デドロック検出は、CPUサイクルで支払い、潜在的に不要な干渉に対処する準備ができていると主張しています。

于 2010-08-24T22:27:57.223 に答える