2011-01-13 28 views
35

可能性の重複:
Boost LibraryブーストC++ライブラリを使用しますか?

多くの場合、私がしようとして(と失敗)されたときにウェブを閲覧するとき、私はブーストに実行するC++プロジェクト。私はBoostのウェブサイトを読んでみましたが、Boostを使う理由とその正確な説明はありませんでした。

私がPythonについて気に入っていることの1つは、すべてが組み込みでクロスプラットフォームのWebリクエスト、電子メール、XML、JSONなどであるということです。これもBoostのケースですか?

ので、十分に暴言、私の具体的な答えは、可能な質問:

  • 正確にブーストとは何ですか?
  • Boostを使用する最もインポートの理由は何ですか?
  • 完全にクロスプラットフォームですか?
  • これは、1つのバッファオーバーフローなどをすばやく見落としている場合は、より安全な「通常の自家製コード」ですか?
  • ブーストのモジュールをすべて1つまたは2つの文で説明しているページへのリンクはありますか?
+0

http://stackoverflow.com/q/125580/50079も参照してください。 – Jon

+7

誰も答えていない質問に答えるために、ブーストライブラリはPythonライブラリと同じ種類のナットとボルトを実用的なものとはしません。 XMLなし、JSONなし、電子メールなし、HTTP処理なし。ブーストライブラリは、より抽象的で低レベルです。まだ信じられないほど役に立つのですが、別の種類の有用なものです。 – Omnifarious

+0

@Omnifarious:ありがとう、それは私の質問の最も重要な部分の一つでした。 – orlp

答えて

43

正確にはBoostとは何ですか?

Boostは、ほんの小さな標準ライブラリを補完する、C++用の有用で非常に高品質のライブラリのコレクションです。

ブーストを使用する最も大きな理由は何ですか?

Boostは、C++にはない高品質のツールを提供します。 Boostがあなたにとって必要かどうかは、あなたのニーズに完全に依存します。しかし、私は安全に言って十分な大きさのC++コードベースはBoostを使うことで恩恵を受けるでしょう。

shared_ptr(ポインタリッチコードでメモリリークを防ぐのに役立つ参照カウントのスマートポインタ)array固定サイズなどの小さなCスタイルの配列の周りに非常に便利なラッパーを提供するarray奇数ビットは次のC++標準に統合されています。

完全にクロスプラットフォームですか?

ほとんど常にはいです。これはBoostの主な特質の1つです。

ブーストのすべてのモジュールを記述しているページへのリンクは、1つまたは2つの文章の中にありますか?

There is indeed.

+5

あなたのコードで 'boost :: shared_ptr'や' boost :: scoped_ptr'を使うだけで、 'delete'を書くことは決してできません。 –

3

Boostは、STLにないC++のクラスやその他のもののコレクションです。 Boostの多くのライブラリが新しいC++標準に含まれています。このコードは広く使われピアレビューされて以来、あなたが思いつくことができるものよりもはるかに安全です。その典型的な完全なクロスプラットフォームですが、いくつかの問題があるかもしれません。ブーストにあるものについては

、これをチェックアウト:ウィキペディア上のboost pageが応答しないhttp://www.boost.org/doc/libs/1_45_0/?view=categorized

2

何を?

+0

私には、Stack Overflowの目的は単に質問に答えることだけではありません。知識を収集し共有することも問題です。私の意見では、このような答えはコミュニティに価値をもたらしません。 – auserdude

+0

@auserdude合意!自己浸漬知識を説明せずに他のウェブページを投稿することは、SOに許可されるべきではありません。 –

9

正確にブーストとは何ですか?

Boostは、一般的な問題を解決するカスタムコードの作成を避けるためのC++ライブラリのコレクションです。

ブーストを使用する最も重要な理由は何ですか?

Boostを使用すると、提供するソリューションを設計、実装、テストする必要がなくなります。これにより、膨大な時間を節約し、途中でバグを回避するのに役立ちます。

完全にクロスプラットフォームですか?

Boostは、多くのプラットフォームをサポートしています。特定のプラットフォームで効率的なソリューションを提供することもあります。現在のバージョンpageの末尾にある、コンパイラテスト済み見出しの下に、テストされたプラットフォームが表示されます。

バッファオーバーフローなどをすぐに見落とすと、それはより安全ですか?

はい、コードのテストに多大な時間を費やす必要がある場合を除きます。 Boostには自動化されたテストスイートが含まれており、毎日の使用で数百万人もの開発者がテストしています。また、それに含まれるライブラリを使って開発するのに役立つ多くのドキュメントもあります。 Boostは、ほとんどの自家製コードよりも安全であるばかりでなく、一般的にはより性能が高いです。

ブーストのすべてのモジュールを記述するページへのリンクは、 に1〜2文ありますか?

Boost Library Documentationリンクページには、Boostのすべてのライブラリの概要が1つ示されています。

9

1)Boostは、C++のベスト・マインドによって開発された一連のAPIです。あなたは、あなたが望むものを多かれ少なかれ使用することができます。各APIは、特定のパラダイムをターゲットとし、解決します。たとえば、

lexical_cast<> - Type-safe ways of casting from one type to another. 
program_options - Library for parsing command lines in a type-safe manner 
asio   - Asynchronous Input/Output. Great for working with sockets, IP4/IP6 
shared_ptr  - Reference-counted smart pointer 

...などです。

2)Boostを使用する最も重要な理由の1つは、これを行った優れた開発者がうまくやっていることです。これらのソリューションは、ピアレビューされ、堅牢です。解決しなければならない問題があり、Boostに請求書に適合するAPIがある場合は、そのAPIを使用する必要があります。

3)これは、あなたが得ようとしているプラ​​ットフォームのことです。すなわち、はい。

4)私は、誰かの自家製コードよりもブーストを使用します。自作自治体は、単一の開発者(それをコード化した人)によって使用される傾向があります。 Boostはあらゆる場所の商用アプリケーションで使用されています。以前に述べたように、ピアレビューされています。あなたはそれよりはるかに頑強にならない。

5)メインの追加ページには、機能別およびアルファベット順のライブラリリストがあります。

+0

です。 – nonremovable

+0

@nonremovable、ありがとう!編集されました。 –

+0

C++ 11の 'std :: _ shared_ptr'が' shared_ptr'を上回っていましたか?その後、彼らは比較的同じですね? –

3

BOOSTは、多くのC++プロジェクトに共通のニーズを満たすライブラリのコレクションです。一般に、BOOST実装コードの可読性よりも正確性、再利用性、移植性、ランタイムパフォーマンス、およびスペース効率の優先順位付けを行います。彼らは完全な高水準の機能要件(例えば、アプリケーションフレームワーク)をカバーする傾向がなく、代わりに(感謝的に)アプリケーション設計を支配したり支配することなく、より自由に組み合わせることができるビルディングブロックを提供する。 BOOSTの使用を検討する

重要な理由は、次のとおりです。

  • ほとんどの図書館はかなりよくテストされ、設計されています:彼らは一般的に自家製ソリューションの持つ人々によってに比べて、いくつかの優れたプログラマが合理的に音のレビューを取得それはすでに書かれて
  • 同じ問題空間は、広く大規模な実世界のフィードバックを収集するために十分な使用とあなたのソリューションは、おそらく
  • は、それはかなり移植だではありません(それは、ライブラリごとに異なります)に
  • より多くの人々をC++コミュニティはあなたのコードを手伝ってくれるでしょう。
  • BOOSTはC++標準の導入の根拠となることが多いため、今後の標準との互換性を保つためにコードを書き直す作業が少なくなります。サンセリフによる地域社会の需要に
  • を高め、コンパイラベンダーはBOOSTの使用でテストする可能性が高いと正しさの問題に対処

ライブラリはここに行または2に記載されている。http://www.boost.org/doc/libs/

関連する問題