編集数年後にこの質問に戻る
ブーストライブラリをさらに使用し続けているため、この質問を更新して、製品の説明が目的の機能と一致する場合にブーストを使用する理由を明確に説明すると思いました。これは、反対意見の人でも納得させるでしょう。openSSLをダウンロードして、クライアントとサーバーアプリケーションを作成してみてください。次に、すべてのプラットフォームでそれが機能するようにしてください。次に、boost :: asio :: sslをダウンロードして使用し、同じアプリケーションを作成します。クリーンで、最適化され、ピアレビューされた、クロスプラットフォームのコードを探すのにブーストが適切な場所であると確信していない場合、この簡単な演習はあなたを変えます。
Tl; drバージョン:
私の意見では、大量の強力な野生の獣であり、飼い慣らすのは簡単ではなく、基本的にあなたが方法を学ぼうとしているので、ブーストを使用しているインディーズまたは中小の開発会社のトンは見られませんそれを使用します。ドキュメントはいくつかの点で不足しており(長いバージョンを参照)、プロジェクト周辺の「コミュニティ」が欠落している、散在している、または非アクティブである(他のプロジェクトと比較して)ようです。
非常に長いバージョン:
すでに受け入れられている答えがあることは承知していますが、私が行うほぼすべてのプロジェクトで実際にブーストを使用している人として、私は答えを投稿すると思いました。
私が最初にブーストをぶらぶらしたときのことを覚えていますが、正直なところ、何が起こっているのか気になりませんでした。Boostのドキュメントはあまりありません。サンプルコードやコメントなどのスニペットがたくさんあるので、人々は私に同意しないかもしれませんが、それはすべて非常に寒くて曖昧であり、ナビゲートするのが難しいです。
また、プロジェクトの周りに「コミュニティ」を見つけたと感じる場所を見つけるのは難しいようです。実際、コミュニティは存在しない、または遊牧民のようです。あいにく、彼らのメーリングリストでさえも非常に多くのヒルのサイトでトローリングされているので、このウサギの穴を下って、常にあなたが始めた場所にループバックすることができます。
これらの2つの要因により、ブーストライブラリの使用を学ぶのはかなり困難な作業になります。ブーストを使用する技術はそれほど複雑ではありませんが、それは膨大なライブラリのセットであり、いくつかのコードスニペットとインターネットの最も暗い隅から散らばったメーリングリストの断片だけで武装しているのです。 ...さて、あなたはアイデアを得る。
バージョン1.45を中心にブーストをいじくりまわしましたが、バージョン1.52 / 1.53でのみ、本番環境で使用できるようになりました。ライブラリがどのように構築され、機能がどのようにカスタマイズできるかにより、コンパイル時の設定に応じて大幅に変化する可能性があるため、ブーストを設定した方法やその設定を覚えているなどの簡単なことでも、慣れて覚えておくべきことがたくさんありますあります。
ただし、間違いを犯さないでください。一度ブーストを振ると、強固なクロスプラットフォームプログラムを迅速に構築するための強力な武器が手に入ります。ちょうど取るboost::asio
例えば。わずか数百行で、非常に強力でスケーラブルで堅牢なクロスプラットフォームの非同期Webサーバーを作成できます。私は長年にわたって複数のクライアント、サーバー、プロキシなどを、わずか数百行のコードで記述してきましたが、それぞれがまだ失敗することはなく、プラットフォームからプラットフォームに数分で移植できます。
他の人が指摘しているように、大企業は通常レガシーなものにこだわっているか、完全に理解している独自のものをロールバックしたいと思っています。また、私が聞いたことがあり、開発リーダーやプロジェクトマネージャーが「大きすぎる」ためにブーストを使用することを禁止しているという、本当にばかげたこともあります。私の推測では、ブーストは1つのライブラリであると信じているか、BCPを聞いたことがないということです。
ブーストを使用する理由
あなたがあなたの質問で暗示しているように、それは「the」C ++ライブラリだからです。Boostは、C ++の世界では、最終的に使用する必要があるもののスイスアーミーナイフと見なされています。そのため、ニーズがある場合は、パフォーマンスの高い、移植性の高いバージョンが必要です。大企業はブーストに貢献し、印象的な履歴書を持つ非常に教育を受けた人々が貢献し、維持します .C ++の新しい標準が開発されているとき、人々は通常、ブーストしてその一部をISO標準C ++にする必要があるかどうかを確認します。
したがって、おそらく既存のライブラリがある可能性のある機能を追加する必要がある場合、私はそれがかなり適切に最適化されており、移植性があり、非常に長い時間とバグが発見され、対処されます。オープンソースの世界では、これらの資質を手に入れるのは非常に困難です。