Boost:asioの最良のドキュメント?


141

boost Webサイトで入手できるドキュメントは...限定されています。

私が読んだことから、一般的なコンセンサスは、boost :: asioライブラリに関する適切なドキュメントを見つけることは単に難しいということです。

これは本当ですか?もしそうなら、なぜですか?

ノート:

  • 私はすでに(非ブースト)Asio Webサイトを見つけました-そして、ドキュメントはBoostウェブサイトのものと同じに見えます。
  • Boost :: asioが新しいことを知っています。言い訳ではなく解決策を探しています。

編集:

  • Boost:asio(Christopher Kohlhoff)の作者によって書かれたTR2の標準ライブラリにネットワークライブラリを追加する提案があります。boost:asioのドキュメントではありませんが、TR2提案のベースとして使用します。著者がこのドキュメントにさらに力を入れたので、リファレンスとしてではなくても、少なくとも概要として、いくらか役立つことがわかりました。

回答:


54

まず、私はBoost.Asioをかなり長い間使用してきました-そして私はあなたの懸念を共有します。質問に対処するには:

  • 紹介とチュートリアルは別として、Boost.Asioに関するドキュメントは非常に不足しています。私は著者ではありませんが、これは主に、非同期IOライブラリのような低レベルの何かについて文書化することが多すぎるためです。
  • 例では、チュートリアルよりも多くのことが提供されます。少し時間をかけてさまざまな例を検討してもかまわない場合は、それらを使用して開始するのに十分なはずです。それを使いたくない場合は、リファレンスドキュメントが役立ちます。
  • Boost UsersとBoost Developersのメーリングリストで、行き詰まっているか、具体的なガイダンスを探しているかどうか尋ねてみてください。多くの人がメーリングリストであなたの懸念に喜んで対応してくれると確信しています。

多くの機能と可能な代替ユースケースを公開するための取り組み(Boost.Asioの一部ではありません)があります。これはせいぜい、ブログや他の形式のパッケージ化されていないドキュメントでWebに散在しています。

不明確で、Boost.Asioライブラリの作成者や開発者との緊密な調整が本当に必要なことの1つは、特定のプラットフォーム用に拡張およびカスタマイズするか、特定の新しい機能を追加することです。これは改善する必要がありますが、良い点は、Asioが標準ライブラリのテクニカルレポート(STLの非同期IOライブラリの場合)の参照実装になるように見えることです。


2
疑いを確認していただきありがとうございます。残念ながら、私は例から学ぼうとしましたが、成功は限られていました。残念ながら、命令のセットとして例の小さなセットを含むライブラリを使用することは正当化できません。MLについて質問するようにとのアドバイスに耳を傾けるかもしれませんが、より良いサポートを心待ちにしています!
mmocny 2008年

私は2と2を組み合わせるだけです。Googleでヒットしたトップ(および最も有益な記事)の1つは、ブーストasioをグーグルで検索しているときに見つかりました:)
mmocny 2008年

ええ、でも私はそれを野外で言いたくありませんでした。;)Chis Kholhoff(作者)もブログを公開しており、彼はAsioについて、そしてあまり一般的ではない状況でそれをどのように使用できるかについて語っています。
ディーン・マイケル

@mmocny同意しますが、ASIOの実装の品質は、他のほとんどの無料のイベントライブラリ、特にWindowsの場合よりも優れています。
unixman83

63

asioの章を含むboostに関するすばらしいドキュメントは、http://en.highscore.de/cpp/boost/index.htmlの(無料の)boostブックにあります。asioに関する章では、一般的な概要を示し、独自のカスタムasio拡張機能を開発する方法について説明します。ボリス・シェーリングによる本当に素晴らしい努力!


41

boost.asioの紹介として使用できる2つの小さな記事を書きました。彼らは私のサイトから入手できます


4
現在のプロジェクトでasioまたはaceを使用するかどうかを調査しているときに、Alex OttのWebサイトを独自に見つけました。彼のサイトは私の質問の多くに答えました。
deft_code

この男のサイトを裂く。そのため、期限切れまで死んだウェブサイトにリンクするのではなく、ここに回答を投稿します。
maxywb

30

注:フォーマットの問題について知らせるためにgamedev.netに連絡しました。残念ながら、このコメントを書いている時点では、#includeステートメント+欠落している.zipファイルリソースを非表示/削除するWebサイトの変更のため、このリソースを推奨するのはより困難です。

Boost.Asioの比較的新しくて非常に優れた初心者向けチュートリアル(bind、shared_ptr、スレッドで効果的に使用する方法も紹介しています)は、次の場所にあります。

http://www.gamedev.net/blog/950/entry-2249317-a-guide-to-getting-started-with-boostasio?pg=1

注:c ++ 0x機能を使用している場合、ファンクターを作成するためのバインドの単純な使用法の多くはラムダで置き換えることができ、shared_ptr / bindは最新バージョンのビジュアルスタジオ(またはスレッドも含むgcc)でも利用できます。)

ドキュメンテーションまたはチュートリアルを検索していたとき、この質問は検索結果の上部に表示され続けたので、新しいチュートリアルが出てきたときに更新しておくことが重要です。


素晴らしいリンク!asioを始めるための間違いなく良いガイド
Ralf

1
このリンクを投稿していただきありがとうございます。残念ながら、うまくいったときと同じように、作者はボールを落とし、作成したライブラリに直接あなたを投げ込んでしまい、完全に私を失いました。彼/彼女はどのようにbind働くか詳細に説明することから、読者Hiveに彼らの図書館に何があるかを推測させることを任せました。
Rotsiser Mho

チュートリアルには、ハイブ定義+インターフェースが直接あります。私は、彼らが11の10ページにそれを導入するので、それは便利だと理にかなっていると思います
M2tM

この記事では、例を含むzipファイルについて説明しますが、私はそのzipファイルを見ません。また、#includeはサンプルコードから切り取られていますか?
ジェイクガストン

ああ、残念ながら、山かっこがまったく処理されていないように思えるgamedev.netのレンダリングコードの更新により、記事は時間の経過とともに侵食されたようです。現時点では、この回答の有効性を保証できません。 。それはまだ大丈夫なリファレンスかもしれませんが、そのフォーマットは明らかに適切に移行されていません。@JakeGaston
M2tM

21

8

boostで利用可能なasioのドキュメントはミニマリストですが、非常に正確で、各単語は重要です。そうは言っても、主にSOからasioを学びました(そして学び続けています)。

私の意見では、「ブースト:: asio :: io_service実行メソッドのブロック/ブロック解除時に混乱」の答えは非常に最初のステップであり、本当に理解するまでもう一度読んでください、2番目の答えも役に立ちます。

次に、最新のSO boost-asioタグの質問とこれら2つの回答者にRSSを購読しました。

上記の回答の作者であるTanner Sansburryは、彼の回答は常に非常に正確で包括的であり、参考文献や美しいスキーマも使用していますRSSフィード
Sehe(申し訳ありませんがSehe、2番目のみ)。RSSフィード

そのすべての資料を使用して、すぐにasioの専門家になります!




0

パーティーには少し遅れますが、 "Boost Asio Network Programming"(Packt publishing)という本があります。

私はこれのコピーを購入し、週末にそれを読んだ後、C ++でサーバーにフルに書き込みましたが、問題はありませんでした。

免責事項:私は本とは何の関係もありません


わー 私はパックオからアシオに関する3冊の本を手に入れましたが、信頼できるとは思っていません。人々がコードのにおいから間違った本を読んだとき、SOの質問にコピーしたときに私が認識できる範囲で、たとえば、stackoverflow.com /
a / 48084444/85371
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.