SlideShare a Scribd company logo
Enviar búsqueda
Cargar
Boost tour 1.60.0
Denunciar
Compartir
Akira Takahashi
Programmer en Preferred Networks, Inc.
Seguir
•
3 recomendaciones
•
2,075 vistas
1
de
12
Boost tour 1.60.0
•
3 recomendaciones
•
2,075 vistas
Denunciar
Compartir
Descargar ahora
Descargar para leer sin conexión
Software
Boostライブラリ一周の旅 1.59.0-1.60.0
Leer más
Akira Takahashi
Programmer en Preferred Networks, Inc.
Seguir
Recomendados
Boost Tour 1_58_0 por
Boost Tour 1_58_0
Akira Takahashi
2.5K vistas
•
17 diapositivas
Boost Overview por
Boost Overview
Akira Takahashi
2.2K vistas
•
17 diapositivas
Flash lite概要 por
Flash lite概要
Toshiharu Shirai
781 vistas
•
7 diapositivas
マスタリング バベル por
マスタリング バベル
道化師 堂華
1.5K vistas
•
39 diapositivas
LT駆動開発08 - 無限のディスク領域を手に入れよう(妄想編) por
LT駆動開発08 - 無限のディスク領域を手に入れよう(妄想編)
Kazuya Matsubara
676 vistas
•
16 diapositivas
Boost tour 1.60.0 merge por
Boost tour 1.60.0 merge
Akira Takahashi
5.1K vistas
•
119 diapositivas
Más contenido relacionado
Destacado
Study3 boost por
Study3 boost
Kohsuke Yuasa
1.7K vistas
•
45 diapositivas
クソザコ鳥頭が非順序連想コンテナに入門してみた por
クソザコ鳥頭が非順序連想コンテナに入門してみた
Mitsuru Kariya
6.6K vistas
•
106 diapositivas
女性のためのC++コミュニティ Ladies++ por
女性のためのC++コミュニティ Ladies++
cocodrips
1.8K vistas
•
9 diapositivas
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines por
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Shintarou Okada
13.1K vistas
•
133 diapositivas
Siv3Dで楽しむゲームとメディアアート開発 por
Siv3Dで楽しむゲームとメディアアート開発
Ryo Suzuki
7.8K vistas
•
71 diapositivas
ABC2015 Summer LT por
ABC2015 Summer LT
Kensuke Onishi
533 vistas
•
12 diapositivas
Destacado
(20)
Study3 boost por Kohsuke Yuasa
Study3 boost
Kohsuke Yuasa
•
1.7K vistas
クソザコ鳥頭が非順序連想コンテナに入門してみた por Mitsuru Kariya
クソザコ鳥頭が非順序連想コンテナに入門してみた
Mitsuru Kariya
•
6.6K vistas
女性のためのC++コミュニティ Ladies++ por cocodrips
女性のためのC++コミュニティ Ladies++
cocodrips
•
1.8K vistas
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines por Shintarou Okada
Boost.勉強会#19東京 Effective Modern C++とC++ Core Guidelines
Shintarou Okada
•
13.1K vistas
Siv3Dで楽しむゲームとメディアアート開発 por Ryo Suzuki
Siv3Dで楽しむゲームとメディアアート開発
Ryo Suzuki
•
7.8K vistas
ABC2015 Summer LT por Kensuke Onishi
ABC2015 Summer LT
Kensuke Onishi
•
533 vistas
CG基礎3 メタリンク por Tetsuro Nakamura
CG基礎3 メタリンク
Tetsuro Nakamura
•
630 vistas
Boost study meeting opening 4 por Akira Takahashi
Boost study meeting opening 4
Akira Takahashi
•
994 vistas
boost - std - C# por Tatsuya Ishikawa
boost - std - C#
Tatsuya Ishikawa
•
2.9K vistas
boost::shared_ptr tutorial por NU_Pan
boost::shared_ptr tutorial
NU_Pan
•
2.9K vistas
The Earth is not flat; but it's not round either (Geography on Boost.Geometry) por Vissarion Fisikopoulos
The Earth is not flat; but it's not round either (Geography on Boost.Geometry)
Vissarion Fisikopoulos
•
465 vistas
Boost勉強会 #10 ディスカッションまとめ por Sigureya
Boost勉強会 #10 ディスカッションまとめ
Sigureya
•
1K vistas
Glfw3,OpenGL,GUI por hira_kuni_45
Glfw3,OpenGL,GUI
hira_kuni_45
•
3.1K vistas
boost and c++11 por Akihiko Matuura
boost and c++11
Akihiko Matuura
•
1.5K vistas
3DCAD@VDI活用とCADデータ管理のロードマップ por Dell TechCenter Japan
3DCAD@VDI活用とCADデータ管理のロードマップ
Dell TechCenter Japan
•
4.7K vistas
ゲーム開発経営ゲーム por Yuki Miyatake
ゲーム開発経営ゲーム
Yuki Miyatake
•
1.8K vistas
Boost Tour 1_58_0 merge por Akira Takahashi
Boost Tour 1_58_0 merge
Akira Takahashi
•
4.8K vistas
Boost container feature por Akira Takahashi
Boost container feature
Akira Takahashi
•
3.4K vistas
3D CADと3Dプリンタ体験セミナー #1 por Kou Ouchi
3D CADと3Dプリンタ体験セミナー #1
Kou Ouchi
•
2.6K vistas
Unity MeshとColliderについて por Self Norl
Unity MeshとColliderについて
Self Norl
•
6.7K vistas
Más de Akira Takahashi
Cpp20 overview language features por
Cpp20 overview language features
Akira Takahashi
891 vistas
•
28 diapositivas
Cppmix 02 por
Cppmix 02
Akira Takahashi
675 vistas
•
7 diapositivas
Cppmix 01 por
Cppmix 01
Akira Takahashi
1K vistas
•
11 diapositivas
Modern C++ Learning por
Modern C++ Learning
Akira Takahashi
18.5K vistas
•
12 diapositivas
cpprefjp documentation por
cpprefjp documentation
Akira Takahashi
1.3K vistas
•
23 diapositivas
C++1z draft por
C++1z draft
Akira Takahashi
6.6K vistas
•
67 diapositivas
Más de Akira Takahashi
(20)
Cpp20 overview language features por Akira Takahashi
Cpp20 overview language features
Akira Takahashi
•
891 vistas
Cppmix 02 por Akira Takahashi
Cppmix 02
Akira Takahashi
•
675 vistas
Cppmix 01 por Akira Takahashi
Cppmix 01
Akira Takahashi
•
1K vistas
Modern C++ Learning por Akira Takahashi
Modern C++ Learning
Akira Takahashi
•
18.5K vistas
cpprefjp documentation por Akira Takahashi
cpprefjp documentation
Akira Takahashi
•
1.3K vistas
C++1z draft por Akira Takahashi
C++1z draft
Akira Takahashi
•
6.6K vistas
Boost tour 1_61_0 merge por Akira Takahashi
Boost tour 1_61_0 merge
Akira Takahashi
•
2K vistas
Boost tour 1_61_0 por Akira Takahashi
Boost tour 1_61_0
Akira Takahashi
•
1.4K vistas
C++14 solve explicit_default_constructor por Akira Takahashi
C++14 solve explicit_default_constructor
Akira Takahashi
•
7.3K vistas
C++14 enum hash por Akira Takahashi
C++14 enum hash
Akira Takahashi
•
8.1K vistas
Multi paradigm design por Akira Takahashi
Multi paradigm design
Akira Takahashi
•
3.2K vistas
Start Concurrent por Akira Takahashi
Start Concurrent
Akira Takahashi
•
22.8K vistas
Programmer mind por Akira Takahashi
Programmer mind
Akira Takahashi
•
10K vistas
Boost.Study 14 Opening por Akira Takahashi
Boost.Study 14 Opening
Akira Takahashi
•
4.1K vistas
Executors and schedulers por Akira Takahashi
Executors and schedulers
Akira Takahashi
•
7.4K vistas
Improvement future api por Akira Takahashi
Improvement future api
Akira Takahashi
•
7.9K vistas
C++14 variable templates por Akira Takahashi
C++14 variable templates
Akira Takahashi
•
5.7K vistas
C++14 relaxing constraints on constexpr por Akira Takahashi
C++14 relaxing constraints on constexpr
Akira Takahashi
•
4.7K vistas
C++14 binary literals por Akira Takahashi
C++14 binary literals
Akira Takahashi
•
4.9K vistas
Leaning random using Boost Random por Akira Takahashi
Leaning random using Boost Random
Akira Takahashi
•
6.2K vistas
Boost tour 1.60.0
1.
Boostライブラリ一周の旅 Ver 1.59.0 ∼
1.60.0 高橋 晶(Akira Takahashi) faithandbrave@gmail.com 2015/12/05 Boost.勉強会 #19 東京
2.
はじめに • Boostに興味はあるけど、触ったことがない • バージョンアップについていけなくなった •
Boostの全容を知りたい この発表は、以下のような方を対象にして、 Boost 1.60.0時点での、なるべく全てのライブラリの 概要を知ってもらうためのものです。 この資料は、バージョン間の差分を紹介するものですが、 これまでの資料をマージしたバージョンも公開します。
3.
バージョンアップの詳細 • boostjpサイトでは、Boostのリリースノートを翻訳したもの を公開しています • http://boostjp.github.io/document/version.html この階層以下に、各バージョンのリリースノートがあります •
本家のリリースノートよりもくわしく書いています • チケットタイトルを直訳するのではなく、問題と修正の内容 を確認して書いています • 新機能が入った際には、ドキュメントから概要と サンプルコードを持ってきたりもしています • 本家より優れたものを作ることが目的ではなく、日本語で 情報を届けるのに適したやり方として情報補完をしています
4.
Boostとは • 標準ライブラリに満足できなかった人たちが作っている、 C++の準標準ライブラリ。 • Boostから標準ライブラリに、多くの機能が採用されている •
普段のプログラミング全般で使える基本的なものから、 専門的なものまで、いろいろなライブラリがある。 • ライセンスはBoost Software License 1.0 • 無償で商用利用可能 • 著作権表記の必要なし • ソースコードの改変自由
5.
本日紹介するライブラリ • Convert • VMD •
Test V3
6.
質問は随時受け付けます • この発表では、3ライブラリの紹介をします。 • 1ライブラリに付き、(ほぼ)ひとつのサンプルコードで 解説する、というスタイルです。 •
発表時間に余裕があるので、随時質問してください。
7.
Convert 1/3 boost::lexical_cast()を置き換えて使用できる、数値と文字列の 型変換ライブラリ。 変換失敗時の挙動、基数や精度、フォーマットなどを設定できる。 戻り値の型はboost::optional<T>。 namespace cnv
= boost::cnv; ! // 文字列"123"をint型に変換する // コンバータにはcstreamを使用する cnv::cstream converter; boost::optional<int> result = boost::convert<int>("123", converter); コンバータクラスはいくつか用意されており、現在正式にサポートされて いるのは、lexical_castと(c|w)streamの2つ。 コンバータを別定義できるので、文字コードの変換にも利用できる。
8.
Convert 2/3 変換失敗時のエラーハンドリングは基本的に、 戻り値であるboost::optional<T>オブジェクトに対して行う。 boost::cnv::cstream converter; ! //
変換後にoptionalの中身を取り出す。 // 変換失敗時はboost::bad_optional_access例外が送出される int result2 = boost::convert<int>("123", converter).value(); ! // 変換失敗時に-1が返される int result3 = boost::convert<int>("xxx", converter).value_or(-1);
9.
Convert 3/3 基数や精度、フォーマットの設定は、標準ライブラリのマニピュレータと、 Boost.Convertが定義しているパラメータの、2種類が使用できる。 マニピュレータに指定は、コンバータの関数呼び出し演算子を使用する。 // 標準のマニピュレータ cnv::cstream
converter; int result1 = boost::convert<int>( " ff", converter(std::hex)(std::skipws) // 16進数、スペースを無視 ).value(); // result == 255 ! // Boost.Convertのマニピュレータ int result2 = boost::convert<int>( "ff", converter(arg::base = cnv::base::hex) // 16進数 ).value(); // result == 255
10.
VMD (Variadic Macro
Data Library) 可変引数マクロを使用した、プリプロセッサメタプログラミングの ライブラリ。Boost.Preprocessorを強化するためのもの。 各種データ型と、それをテスト・解析する機能が提供される。 #define SEQ 1 2 3 #define SEQ_SIZE BOOST_VMD_SIZE(SEQ) ! void f(int a, int b, int c) { std::cout << a << " " << b << " " << c << std::endl; } ! // 要素数を取得 std::cout << SEQ_SIZE << std::endl; // 3 ! // シーケンスをカンマ区切りパラメータに変換 f(BOOST_VMD_ENUM(SEQ));// 「1, 2, 3」に変換される
11.
Test v3 Boost.Testがバージョン3にメジャーアップデートした。 汎用的なテストマクロBOOST_TESTが追加された(Power Assert)。 パラメタライズドテストに対応した。ドキュメントが読みやすくなった。 BOOST_AUTO_TEST_CASE(equal_test) { int
a = 1; int b = 2; BOOST_TEST(a == b); // これまではBOOST_CHECK_EQUAL(a, b)と書いてた } Running 1 test case... main.cpp:8: error: in "equal_test": check a == b has failed [1 != 2] ! *** 1 failure is detected in the test module "example"
12.
本日の紹介はここまで • 今回の「Boostライブラリ一周の旅」では、 Boost 1.59.0から1.60.0までの更新を紹介しました。 •
発表では差分のみを紹介していますが、 これまで紹介したものをマージした資料も公開しています。 • 今回Boostに興味を持たれた方は、そちらのマージした資料 もぜひご覧ください。