SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Boost C++ Librariesの概要



              高橋晶(Akira Takahashi)
                  id:faith_and_brave
                          @cpp_akira
            Boost.勉強会 #7 東京 2011/12/03(土)
Boostとは
• C++標準化委員会のメンバが立ち上げたオープンソースの
  ライブラリ群Boost C++ Libraries

• BoostPro Computingというサポート会社がある

• ライセンスはBoost Software Licence 1.0
  – 商用利用可
  – 改変自由
  – ソースコードにライセンス表記する必要はない(静的リンクの場合)


• 開発に参加してる企業:Adobe, Google, Intelなど…
C++規格への影響
• BoostはC++標準ライブラリの実験場として機能している

• 2011年に発行されたC++11では、Boostから多くのライブラリ
  が導入された

• Boostから標準入りしたライブラリの例:
  スマートポインタ、正規表現、乱数、型特性、スレッドなど。

• Boostが言語機能に与えた影響:
  C++11で導入されたラムダ式は、Boost.Lambda作者によって
  提案された。右辺値参照やnoexcept、Variadic Templatesも
  Boostのメンバが主動して導入された。
どんなライブラリがあるのか
C++11に導入されたものを除けば、以下のようなライブラリがある:

•   ファイルシステム(Filesystem)
•   ネットワーク(Asio)
•   シリアライズ(Serialization)
•   オプション型(Optional)
•   構文解析(Spirit)
•   線形代数(uBLAS)
•   計算幾何(Geometry)
•   統計処理(Accumulators)
•   区間計算(Interval)
•   状態マシン
•   etc…
開発中のライブラリ
今後導入されるかもしれない、開発中もしくはリリース前のライブ
ラリ:
•   Lock-freeコンテナ
•   多倍長整数
•   ネットワークの上位プロトコル(HTTP, SMTP, XMPP, ICMP, etc…)
•   プロセス管理
•   コルーチン(ファイバ)
•   ロギング
•   暗号化
•   etc…
開発情報など
• ユーザーML
  http://lists.boost.org/mailman/listinfo.cgi/boost-users


• 開発者ML
  http://lists.boost.org/mailman/listinfo.cgi/boost


• その他MLまとめ
  https://sites.google.com/site/boostjp/mailing-list


• Subversionリポジトリ
  http://svn.boost.org/svn/boost/trunk


• Gitミラー
  https://github.com/ryppl/boost-svn


• バグ報告
  https://svn.boost.org/trac/boost/
日本人ユーザーの活動
• Boostには現在、日本人が作ったライブラリはまだないが、
  バグ報告やパッチ送付、議論への参加といった多くの貢献を
  行なっている。

• また、boostjpコミュニティでは、リリースノートの翻訳や、逆引
  きリファレンスの作成を行なっている。
日本人ユーザーの活動
• 事例1 : Boost.Serialization
  近藤貴俊(redboltz)
  多重継承に関する根深い問題を解決するパッチを送付
  https://svn.boost.org/trac/boost/ticket/3604
日本人ユーザーの活動
事例1 : Boost.Serialization
Acknowledgmentsにも名前が載ってます




      「近藤貴俊は、仮想基本クラスのシリアライズにおける
       非常に不透明で困難なバグを修正した」
日本人ユーザーの活動
事例2 : Boost.Range
Shunsuke Sogame(mb2sync)
Oven Range Libraryの実装経験により、Rangeアダプタの設計に貢献
日本人ユーザーの活動
事例3 : Boost.Geometry
高橋 晶(faith_and_brave/cpp_akira)
Boost.Fusionのシーケンスと見なせるあらゆる型を、
Boost.Geometryで使用できるようにした。




     手伝ってくれたDigitalGhostさんありがとう!
日本人ユーザーの活動
他にも、ドキュメントに名前までは載ってないけど貢献してる
ユーザーはたくさんいます。
•   [config] Macro BOOST_NO_NOEXCEPT is required
    → @SubaruG

•   irange doesn't end iteration properly when step_size is 2 or more(#5544)
    → @hotwatermorning

•   ptree::sort() compilation error(#5710)
    binomial_distribution<long long> compilation error(#5705)
    → @bolero_MURAKAMI

•   is_rvalue_reference returns wrong result when rvalue reference to a function
    is passed(#5795)
    → @sscrisk

•   "0 + 0" and "0 - 0" lead to a compile time error(#5724)
    adjacent_filtered_range::m_pred should be removed(#5486)
    → @iorate
バグ報告しよう
• オープンソースのライブラリは、ユーザーが使えば使うほど
  便利になっていくという特性を持っています。

• より便利になるにはフィードバックが必要です。

• バグ報告の英語は難しくないです。
  ほぼ定型文なので、他のチケットを見てマネしましょう。
  英語が難しくて投稿できないという方は、boostjpのGoogle
  Groupに連絡してもらえればお手伝いします。
日本語情報を充実させよう
• boostjpコミュニティでは、Boostの日本語情報を充実させるた
  めに、いろいろな活動を行なっています。

• 現状、リリースノートの翻訳や逆引きリファレンスの作成を行
  なっています。

• 日本語情報が充実すれば、Boostを仕事で使えるように提案す
  るのがやりやすくなるはずです!
  「仕事で使えない・・・」と嘆いて終わりではなく、より便利に、
  より情報を充実させることで自らチャンスを作り出しましょう!
日本のBoost有識者リスト
Boostの各ライブラリに詳しいTwitterユーザーをまとめたリスト
があります。何かあったらどんどん聞きましょう。
ライブラリ名         リスト
Multi-Index    https://twitter.com/#!/cpp_akira/boost-multi-index/members
Graph          https://twitter.com/#!/cpp_akira/boost-graph/members
Range          https://twitter.com/#!/cpp_akira/boost-range/members
Fusion         https://twitter.com/#!/cpp_akira/boost-fusion/members
Thread         https://twitter.com/#!/cpp_akira/boost-thread/members
Asio           https://twitter.com/#!/cpp_akira/boost-asio/members
Preprocessor   https://twitter.com/#!/cpp_akira/boost-preprocessor/members
Optional       https://twitter.com/#!/cpp_akira/boost-optional/members
Variant        https://twitter.com/#!/cpp_akira/boost-variant/members
Flyweight      https://twitter.com/#!/cpp_akira/boost-flyweight/members
Phoenix        https://twitter.com/#!/cpp_akira/boost-phoenix/members
Python         https://twitter.com/#!/cpp_akira/boost-python/members
日本のBoost有識者リスト
Boostの各ライブラリに詳しいTwitterユーザーをまとめたリスト
があります。何かあったらどんどん聞きましょう。
ライブラリ名          リスト
Serialization   https://twitter.com/#!/cpp_akira/boost-serialization/members
Wave            https://twitter.com/#!/cpp_akira/boost-wave/members
Build           https://twitter.com/#!/cpp_akira/boost-build/members
Xpressive       https://twitter.com/#!/cpp_akira/boost-xpressive/members
Interprocess    https://twitter.com/#!/cpp_akira/boost-interprocess/members




        Twitterのリストが20個しか作れないので悩み中。
Q&A

Contenu connexe

Tendances

Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjpSphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjpTakeshi Komiya
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-pluginIkuko Kanada
 
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組みTakayuki Shimizukawa
 
Sphinxの使い方事例
Sphinxの使い方事例Sphinxの使い方事例
Sphinxの使い方事例Go Yamada
 
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”Hiroshi Takase
 
Deep Learningライブラリ 色々つかってみた感想まとめ
Deep Learningライブラリ 色々つかってみた感想まとめDeep Learningライブラリ 色々つかってみた感想まとめ
Deep Learningライブラリ 色々つかってみた感想まとめTakanori Ogata
 
いいパブッ!! はじめてのEPUB 3
いいパブッ!! はじめてのEPUB 3いいパブッ!! はじめてのEPUB 3
いいパブッ!! はじめてのEPUB 3Hiroshi Takase
 
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906Teruo Kawasaki
 

Tendances (8)

Sphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjpSphinx拡張 探訪 2014 #sphinxjp
Sphinx拡張 探訪 2014 #sphinxjp
 
Mizuno buddypress-plugin
Mizuno buddypress-pluginMizuno buddypress-plugin
Mizuno buddypress-plugin
 
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
Sphinxで作る貢献しやすいドキュメント翻訳の仕組みSphinxで作る貢献しやすいドキュメント翻訳の仕組み
Sphinxで作る貢献しやすい ドキュメント翻訳の仕組み
 
Sphinxの使い方事例
Sphinxの使い方事例Sphinxの使い方事例
Sphinxの使い方事例
 
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”
書籍解説 “What is EPUB 3?” & “Accessible EPUB 3”
 
Deep Learningライブラリ 色々つかってみた感想まとめ
Deep Learningライブラリ 色々つかってみた感想まとめDeep Learningライブラリ 色々つかってみた感想まとめ
Deep Learningライブラリ 色々つかってみた感想まとめ
 
いいパブッ!! はじめてのEPUB 3
いいパブッ!! はじめてのEPUB 3いいパブッ!! はじめてのEPUB 3
いいパブッ!! はじめてのEPUB 3
 
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
 

Similaire à Boost Overview

LibreOfficeのQA事情 2015-06-27
LibreOfficeのQA事情 2015-06-27LibreOfficeのQA事情 2015-06-27
LibreOfficeのQA事情 2015-06-27Shinji Enoki
 
オープンソースプロジェクトのQAについて - LibreOfficeのケースから-
オープンソースプロジェクトのQAについて  - LibreOfficeのケースから-オープンソースプロジェクトのQAについて  - LibreOfficeのケースから-
オープンソースプロジェクトのQAについて - LibreOfficeのケースから-Shinji Enoki
 
TypeScript x Bot Framework
TypeScript x Bot FrameworkTypeScript x Bot Framework
TypeScript x Bot FrameworkKazumi IWANAGA
 
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Kazuto Kusama
 
Stack Overflow+英文読む時、便利なツール
Stack Overflow+英文読む時、便利なツールStack Overflow+英文読む時、便利なツール
Stack Overflow+英文読む時、便利なツールishiki-takai
 
Introduction to GNOME Translation (OSC2012 Tokyo/Spring)
Introduction to GNOME Translation (OSC2012 Tokyo/Spring)Introduction to GNOME Translation (OSC2012 Tokyo/Spring)
Introduction to GNOME Translation (OSC2012 Tokyo/Spring)Jiro Matsuzawa
 
Out systemsaichiusermeeting#5 lt2
Out systemsaichiusermeeting#5 lt2Out systemsaichiusermeeting#5 lt2
Out systemsaichiusermeeting#5 lt2潤司 渡部
 
Upstream Training in Japan #3
Upstream Training in Japan #3Upstream Training in Japan #3
Upstream Training in Japan #3Takashi Torii
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform拓将 平林
 
XPages の最新機能を、XPages Extension Library Japan の日本語サンプルで試そう!
XPages の最新機能を、XPages Extension Library Japan の日本語サンプルで試そう!XPages の最新機能を、XPages Extension Library Japan の日本語サンプルで試そう!
XPages の最新機能を、XPages Extension Library Japan の日本語サンプルで試そう!Hiroaki Komine
 
Git & ブランチモデルで学ぶ バージョン管理入門
Git & ブランチモデルで学ぶ バージョン管理入門Git & ブランチモデルで学ぶ バージョン管理入門
Git & ブランチモデルで学ぶ バージョン管理入門kazuki kuriyama
 
統一Qtコミュニティー
統一Qtコミュニティー統一Qtコミュニティー
統一QtコミュニティーYikei Lu
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaShigeru Hanada
 
LibreOffice No coding extention(ClipArt)
LibreOffice No coding extention(ClipArt)LibreOffice No coding extention(ClipArt)
LibreOffice No coding extention(ClipArt)Makoto Takizawa
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築You&I
 
ユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントMasaki NIWA
 

Similaire à Boost Overview (20)

LibreOfficeのQA事情 2015-06-27
LibreOfficeのQA事情 2015-06-27LibreOfficeのQA事情 2015-06-27
LibreOfficeのQA事情 2015-06-27
 
オープンソースプロジェクトのQAについて - LibreOfficeのケースから-
オープンソースプロジェクトのQAについて  - LibreOfficeのケースから-オープンソースプロジェクトのQAについて  - LibreOfficeのケースから-
オープンソースプロジェクトのQAについて - LibreOfficeのケースから-
 
Quality Assurance(QA) for LibreOffice
Quality Assurance(QA)  for LibreOfficeQuality Assurance(QA)  for LibreOffice
Quality Assurance(QA) for LibreOffice
 
TypeScript x Bot Framework
TypeScript x Bot FrameworkTypeScript x Bot Framework
TypeScript x Bot Framework
 
Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践Cloudn PaaSチームのChatOps実践
Cloudn PaaSチームのChatOps実践
 
Stack Overflow+英文読む時、便利なツール
Stack Overflow+英文読む時、便利なツールStack Overflow+英文読む時、便利なツール
Stack Overflow+英文読む時、便利なツール
 
20090828 Webconlocal
20090828 Webconlocal20090828 Webconlocal
20090828 Webconlocal
 
Introduction to GNOME Translation (OSC2012 Tokyo/Spring)
Introduction to GNOME Translation (OSC2012 Tokyo/Spring)Introduction to GNOME Translation (OSC2012 Tokyo/Spring)
Introduction to GNOME Translation (OSC2012 Tokyo/Spring)
 
俺とGitHub
俺とGitHub俺とGitHub
俺とGitHub
 
Out systemsaichiusermeeting#5 lt2
Out systemsaichiusermeeting#5 lt2Out systemsaichiusermeeting#5 lt2
Out systemsaichiusermeeting#5 lt2
 
Upstream Training in Japan #3
Upstream Training in Japan #3Upstream Training in Japan #3
Upstream Training in Japan #3
 
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
[REV UP] あなたならどう使う?最新Azureレシピ for LINE Platform
 
XPages の最新機能を、XPages Extension Library Japan の日本語サンプルで試そう!
XPages の最新機能を、XPages Extension Library Japan の日本語サンプルで試そう!XPages の最新機能を、XPages Extension Library Japan の日本語サンプルで試そう!
XPages の最新機能を、XPages Extension Library Japan の日本語サンプルで試そう!
 
Git & ブランチモデルで学ぶ バージョン管理入門
Git & ブランチモデルで学ぶ バージョン管理入門Git & ブランチモデルで学ぶ バージョン管理入門
Git & ブランチモデルで学ぶ バージョン管理入門
 
統一Qtコミュニティー
統一Qtコミュニティー統一Qtコミュニティー
統一Qtコミュニティー
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
 
LibreOffice No coding extention(ClipArt)
LibreOffice No coding extention(ClipArt)LibreOffice No coding extention(ClipArt)
LibreOffice No coding extention(ClipArt)
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
Yapc2012資料
Yapc2012資料Yapc2012資料
Yapc2012資料
 
ユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイントユーザ・デザイナーから見たPlone CMSのアピールポイント
ユーザ・デザイナーから見たPlone CMSのアピールポイント
 

Plus de Akira Takahashi

Plus de Akira Takahashi (20)

Cpp20 overview language features
Cpp20 overview language featuresCpp20 overview language features
Cpp20 overview language features
 
Cppmix 02
Cppmix 02Cppmix 02
Cppmix 02
 
Cppmix 01
Cppmix 01Cppmix 01
Cppmix 01
 
Modern C++ Learning
Modern C++ LearningModern C++ Learning
Modern C++ Learning
 
cpprefjp documentation
cpprefjp documentationcpprefjp documentation
cpprefjp documentation
 
C++1z draft
C++1z draftC++1z draft
C++1z draft
 
Boost tour 1_61_0 merge
Boost tour 1_61_0 mergeBoost tour 1_61_0 merge
Boost tour 1_61_0 merge
 
Boost tour 1_61_0
Boost tour 1_61_0Boost tour 1_61_0
Boost tour 1_61_0
 
error handling using expected
error handling using expectederror handling using expected
error handling using expected
 
Boost tour 1.60.0 merge
Boost tour 1.60.0 mergeBoost tour 1.60.0 merge
Boost tour 1.60.0 merge
 
Boost Tour 1_58_0 merge
Boost Tour 1_58_0 mergeBoost Tour 1_58_0 merge
Boost Tour 1_58_0 merge
 
C++14 solve explicit_default_constructor
C++14 solve explicit_default_constructorC++14 solve explicit_default_constructor
C++14 solve explicit_default_constructor
 
C++14 enum hash
C++14 enum hashC++14 enum hash
C++14 enum hash
 
Multi paradigm design
Multi paradigm designMulti paradigm design
Multi paradigm design
 
Start Concurrent
Start ConcurrentStart Concurrent
Start Concurrent
 
Programmer mind
Programmer mindProgrammer mind
Programmer mind
 
Boost.Study 14 Opening
Boost.Study 14 OpeningBoost.Study 14 Opening
Boost.Study 14 Opening
 
Executors and schedulers
Executors and schedulersExecutors and schedulers
Executors and schedulers
 
Improvement future api
Improvement future apiImprovement future api
Improvement future api
 
C++14 variable templates
C++14 variable templatesC++14 variable templates
C++14 variable templates
 

Boost Overview