Boost.勉強会 #6 札幌
- ATND:http://atnd.org/events/18252
- togetter:http://togetter.com/li/210115
#6 回目は試される大地で Boost.勉強会が開催されました。
今回も UST 参加です。
発表資料とかはあとで追加する予定。
☆Boost.Geometryに学ぶテンプレートライブラリの設計(@cpp_akira)
自分でも似たようなコンセプトの線形代数ライブラリを書こうと思っている(書いている)ので Boost.Geometry の設計資料はとても参考になりますね。
他にも Boost.Fusion とかも同じような設計なのかな?
こういう設計だと他のライブラリとも併用して使うことが出来るので、美しいですよね。
ちなみに今考えているのは、
struct my_vec{}; があった場合に。
- my_vec を Boost.Fusion でアダプトする
- tag_traits
を特殊化して vector_tag を定義する - 各処理から要素を参照する場合は、 Boost.Fusion を使用する
- 拡張する場合は、distance_traits
で、クラスの特殊化を行い、operator ()(my_vec, my_vec)で実装を書く
とかそんな感じ。まだ煮詰めている途中なので変わるかも知れないけど。
Boost.Geometry は関数のオーバーロードでタグディスパッチを実装しているのでそこが違うのかな。
今のところ Boost.Fusion のアダプト前提でいいかなーと思っています。
動的な可変長 vector は考えていないので。
もう5回ぐらい設計を書き直しているのでそろそろ実装を書きたいですね…。
設計のコンセプトさえ決まればあとは実装をガリガリ書いていくだけなんですが…ぐぬぬ。
ここら辺のまとめはまた別にまとめてみたいところ。
☆関数プログラマの為のBoostとBoostユーザの為の関数プログラミング(@uskz)
UST 配信の調子が悪かったみたいで、見ることは出来ませんでした。
興味のある内容なので、後ほど資料を読んでみたいと思います。
☆ContainerFacade(@fadis_)
コンテナの特性によって、アルゴリズムを実装するって内容の発表でした。
『Boost.Geometryに学ぶテンプレートライブラリの設計』と似たような内容ですね。
ここら辺も参考になりますね。
メンバとかの has_xxx は、C++11 の auto + decltype の組み合わせで、だいぶ簡単に実装する事ができますね。
C++03 でも簡単に has_xxx が実装できる(はずの) Boost.TTI も早く欲しいです。
☆テンプレートメタプログラミング as 式(@decimalbloat)
コンセプトは ftmpl と同じ感じかな?
decltype まじ decltype。
ここまで来ると『ぼくのしっているC++じゃない!』状態ですね…。
☆PStade.OvenとEggの実装を読む(@hotwatermorning)
使ったことはあるけれど、ソースは読んでことがない PStade の解説です。
Oven のソースはチラッと見たことはありますけど Egg とかは何をやっているのかすらよく知らないですね…。
使ったことがない人は、すごく便利(面白い)ライブラリなので、スライドを見て使ってみましょう!
☆char32_tとBoost.Xpressiveと(@egtra)
こちらも UST配信が途中で止まってしまったので後で資料があれば読んでみます。
☆組み込みでこそC++を使う100の理由(@kikairoya)
こちらも途中参加です。
兎にも角にも C言語は滅びるべき。
この資料は C++ で書く理由を説明する材料になりそうですね。
あと最後にちょっとユーザ定義リテラルさんについての話がありました。
単位を表したりするのには使い勝手がいいですよねー。
☆Boost.Msmの使い方(@redboltz)
前回の勉強会でも発表があった Boost.MSM の発表です。
すごい聞きやすい発表でした。
UML からコードに落とすには結構簡単そうな感じですね。
MPL力もちょっと上がったと思うので、そろそろ Boost.MSM で何か書いてみたいです。
[参照]
http://d.hatena.ne.jp/redboltz/20111030/1319972141
https://github.com/redboltz/BoostSapporo
http://d.hatena.ne.jp/kura-replace/20110514/1305385110
☆#include (@wraith13)
知らないことがちょっとあったので、後から発表資料があれば見てみたいと思います。