Boost.勉強会(at グリー)
- C++童貞から脱出すべく参加してきました
- 一言でまとめると、とてもおもしろかった
- 主催のid:faith_and_braveさんおよび会場を貸してくださったグリーの方々ありがとうございました
- 当日の朝、早起きしてkinabaさんの本(サイン入り)でにわか予習
- bind、function、lambdaあたり
- おかげでなんとかついて行けた
- 作者: 稲葉一浩
- 出版社/メーカー: 秀和システム
- 発売日: 2007/07/11
- メディア: 単行本
- 購入: 4人 クリック: 235回
- この商品を含むブログ (36件) を見る
- FLTVのスピーカーがやたら来てた印象
- FLTVで発表した12人のうち、本編に参加していたのは6人
- 懇親会も含めると、見かけなかったのは3人だけ
- つまりC++抜きの未来はありえない、と。そんな気はする
Boostライブラリ一周の旅(id:faith_and_brave @cpp_akira)
- 初心者としては、全体がわかるこういうプレゼンはとてもありがたい
- 時間が40分オーバーw
Boost.MultiIntrusivedex(@kinaba)
- Boost.MultiIndexでは複数のソート/アクセス順をコンテナに持たせられる
- 一つのノードの中に複数のデータ構造の情報を保持することで実現
- Boost.Intrusiveは使えるsetがマニアック。splay-setとかtreap-setとか
- MultiIndexでIntrusiveのsetを使えるようにしたのがMultiIntrusivedex
- ソース置き場は http://github.com/kinaba/mint
LT
昼ごはん食べてて10分くらい遅刻
Boost.Tokenizerのカスタマイズ(id:tt_clown @tt_clown)
Boost.Graphの入門の入門(@egtra)
Boost.Polygon(id:dark-yoshi @dark_yoshi_cpp)
- Boost.Polygonは11月にアクセプトされたばかりで1.41.0(最新版)でもまだ入ってない
Boost.Coroutine(id:melpon @melponn)
- 関数の実行を途中で凍結
- 自分には継続にしか見えなかったんだけど、人によってマイクロスレッドと言ったりfiberと言ったりするらしい
- いわばコンテキストの切り替えをユーザーが行うスレッド
- 同期が取りやすい
- Boost Vaultから持ってくる
- 組み込み環境で特に有効
- コンテキストの作り方
- 必要な情報を保存
- スタックポインタを書き換え
- 必要な情報を読み込み
- プログラムカウンタを書き換え
- 別にBoost.Fiberというのも出てきたらしい
Boost.Asio(id:xyuyux @yuyu_type)
Boost.Preprocessorでプログラミング(id:DigitalGhost @DecimalBloat)
- プリプロセサでコンパイルなしでプログラムを実行
- こういうバカっぽいのっていいなあ
- 発想としてはこないだ自分が発表したピュアlambda階乗計算によく似てる
- BOOST_PP_AUTO_RECに注意。詳しくはブログ見てねとのこと
バグベアード入門(id:wraith13 @wraith13)
shared_ptr&weak_ptr(id:Cryolite @Cryolite)
- プレゼンのクオリティが高かったし、内容もおもしろかった
- 最初、普通の参照カウンタの話をして「え、これだけ?」と思わせておいて本論に入るという。うまいなあ
- 「『所有』を制するものがC++を制する」
- ポインタが指している先が生きているかどうかはC++は感知しない
- 重要なのは「ポインタと同等の型互換性/バイナリ互換性」と「非侵入性」
- 所有を開始するときに開放の処理を設定することで、バイナリ境界を超えられる
- voidのシェアドポインタを使うことで開放を遅らせることができる
- 例
- thisへのweak_ptr
- オブザーバ↓。Boost.Signal2は実際にこんな感じで実装されてるとのこと
if (shared_ptr<void>p = wp.lock()){ call_back(); } else サブスクライバーリストから削除する処理
- キーが死んだかどうかを確かめるための2種類の実装
- マップをウィークポインタでクリーンアップ
- マップエントリも所有して、まとめて消すカスタムデリータを前もって設定
- 循環所有をどうにかできるか?という話