C++ Boost ライブラリを使用する利点は何ですか?[閉まっている]

StackOverflow https://stackoverflow.com/questions/125580

  •  02-07-2019
  •  | 
  •  

質問

それで、読んでみたところ、Boost ライブラリは実際によく使われているようです (ただし、私のショップではそうではありません)。どうしてこれなの?そして何がそんなに素晴らしいのでしょうか?

役に立ちましたか?

解決

ブースト が非常に広範囲に使用されている理由は次のとおりです。

  • これはオープンソースであり、査読済みです。
  • それは、 広い範囲 STL が欠落していたプラットフォームに依存しない機能。
  • これは STL を置き換えるものではなく、補完するものです。
  • Boost 開発者の多くは C++ 標準委員会に所属しています。実際、Boost の多くの部分は次の C++ 標準ライブラリに含まれると考えられています。
  • きちんと文書化されています。
  • その ライセンス オープンソースおよびクローズドソースのプロジェクトに含めることができます。
  • その特徴はそうではありません いつもの 相互に依存しているため、必要な部分だけをリンクできます。[リュック・ハーミットさんのコメント】

他のヒント

ホームページから:

「...世界で最も高く評価され、専門的に設計されたC ++ライブラリプロジェクトの1つです。」 - Herb SutterとAndrei Alexandrescu、C ++コーディング標準

「項目55:ブーストに精通してください。」 - Scott Meyers、効果的なC ++、第3版。

「ほとんどのプログラマーにとって明らかな解決策は、必要なサービスに依存しないエレガントで効率的なプラットフォームを提供するライブラリを使用することです。例はブーストです...」 - Bjarne Stroustrup、抽象化、ライブラリ、およびC ++の効率性

これは広く使用され受け入れられているライブラリですが、なぜそれが必要なのでしょうか?

必要な場合:

  • 正規表現
  • 関数バインディング
  • ラムダ関数
  • 単体テスト
  • スマートポインター
  • コピー不可、オプション
  • 連載化
  • 一般的な日付
  • ポータブルファイルシステム
  • 循環バッファ
  • 構成ユーティリティ
  • 汎用画像ライブラリ
  • TR1
  • スレッド
  • ユーブラス

そして もっと C++ でコーディングする場合は、以下を参照してください。 ブースト.

標準ライブラリに不足しているものが多数追加されるため、その一部が標準に組み込まれるようになりました。

人々を元気づける 嘘はついていない:

組織がブーストを使用する必要があるのはなぜですか?

一言で言えば、生産性です。ブースト速度の初期開発、バグが少なくなり、輪の再発明が減少し、長期的なメンテナンスコストが削減されるなど、高品質のライブラリを使用すると、また、ブーストライブラリは事実上の標準またはデジュールの基準になる傾向があるため、多くのプログラマーはすでにそれらに精通しています。

ブーストライブラリの10個がC ++標準ライブラリのTR1に含まれているため、後の完全な標準化が予定されています。TR2のパイプラインには、より多くのブーストライブラリがあります。ブーストライブラリを使用すると、組織は新しいテクノロジーを採用する際のヘッドスタートを提供します。

多くの組織は、Adobe Acrobat Reader 7.0のように、Boostで実装されたプログラムをすでに使用しています。

いくつかの Boost クラス (shared_ptr) は非常に便利ですが、Boost の特性と概念に関しては少しおかしくなっていると思います。テンプレートを多用するコードの場合と同様、Boost ではコンパイル時間と巨大なバイナリ サイズはまったく異常です。バランスが必要です。Boost がそれを見つけたかどうかはわかりません。

C++ プログラミングへのより現代的なアプローチを可能にするライブラリを追加します。

私の経験では、多くの C++ プログラマーは実際には 1990 年代初頭の C++ プログラマーであり、C++ クラスをほとんど作成しており、ジェネリック関数はあまり使用していません。より現代的なアプローチでは、ジェネリックスを使用して動的言語に近い方法でソフトウェアを構成しますが、それでも最終的には型チェックとパフォーマンスが得られます。見た目は少し醜いです。しかし、構文の問題を乗り越えれば、それは本当に素晴らしいものになります。Boost は、作品を簡単に作成するために必要なツールを多数提供します。スマート ポインター、関数、ラムダ、バインディングなど。さらに、この新しい C++ 記述方法を利用してネットワークや正規表現などを提供するブースト ライブラリもあります。

大量の for ループを作成したり、関数オブジェクトを手動でローリングしたり、メモリ管理を行ったりしている場合は、間違いなく boost をチェックする必要があります。

BOOST は、多くの C++ プロジェクトに共通するニーズを満たすライブラリのコレクションです。一般に、BOOST 実装コードの読みやすさや、場合によってはコンパイル時間よりも、正確性、再利用性、移植性、実行時のパフォーマンス、スペース効率を優先します。これらは、高レベルの機能要件を完全にカバーしていない傾向があります (例:アプリケーション フレームワーク)の代わりに、(ありがたいことに)アプリケーションの設計を指示したり支配したりすることなく、より自由に組み合わせることができるビルディング ブロックを提供します。

BOOST の使用を検討する重要な理由は次のとおりです。

  • ほとんどのライブラリは十分にテストされ、設計されています。通常、同じ問題領域で自家製のソリューションを開発した人々と比較して、一部の優秀なプログラマーによって適度に健全なレビューが得られ、広範な現実世界のフィードバックを収集するのに十分なほど広く使用されています。
  • それはすでに書かれており、あなたの解決策はおそらくそうではありません
  • かなり移植性が高い (ただし、ライブラリごとに異なります)
  • C++ コミュニティのより多くの人々があなたのコードを手助けする上で有利なスタートを切ることができます。
  • BOOST は多くの場合、C++ 標準への導入の実験場となるため、BOOST を使用しない将来の標準と互換性を持たせるためにコードを書き直す作業が少なくなります。
  • コミュニティの要求により、コンパイラ ベンダーは BOOST の使用に関する正確性の問題をテストし、対応する可能性が高くなります。
  • ブースト ライブラリに精通していると、今作成したコードが再利用できない可能性がある他のプロジェクト (おそらく他の会社) で同様の作業を行うのに役立ちます。

ここでは、ライブラリについて 1 ~ 2 行で説明します。 http://www.boost.org/doc/libs/.

C++の標準ライブラリだけではないので、 完了.

何でも ケブリン・ヘニーの関与に注目すべきである。

Boost は基本的に、標準がどうなるかについての概要を示しています。さらに、Boost が取得するすべてのピア レビューと使用法を考慮すると、依存関係に対してかなり良い結果が得られることを確信できます。

ただし、Boost は外部依存関係であるため、ほとんどのショップでは Boost を使用しません。そして実際には、外部依存関係を減らすことも非常に重要です。

Boost と C++ の関係は、.NET Framework と C# の関係に似ていますが、おそらく小規模です。

私はファイルシステム ライブラリを少しだけ使用しますが、boost::shared_ptr は非常に優れています。他のこともやっていると聞きました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top