Boost.勉強会 #10 に参加しました

Boost.勉強会 #10 東京 - boostjp

もう二日経ったけど書く。

色々あったけど、最後に書くとして、各発表の感想。

Boost ライブラリ一周の旅 1.45.0 〜 1.50.0

C++Now! 2012 参加レポート

local function については、「あれ、auto でラムダ式を束縛すれば良いのでは?」と思ったのですが、それに加えて C++03 でも使えるように、ということなんですかね。

C++Now! の方は、結構楽しそうで結構行ってみたい。来年だったら4年生で研究室にこもるだけだと思われるので、お金を貯めて行ければ良いなと思っています。

そのためにも英語を精進します...

Sexyhook3 の改良点

実装に手を加えずに、侵入的に動きを書き換えるというのは、内部のテストをうまーく忍ばせたりとかできて大変嬉しい。

前にクラスのテストはそのクラス自身の公開メンバとして埋め込んでおけば、クラス自身の使い方も分かって一石二鳥では?とかもありましたね、そういえば。

C++でエレガントな並列計算

ここらで発表順変更。

「そもそもどこがエレガント?」
数値計算の速度比較なら fortran も要るのでは?」

とか色々言われていましたが、fortran は忘れてください(切実)。

あと、数値計算屋って for 文手書きが普通なの?とかもありましたが、他の方法でカウンタの値を取れれば文句ないです。

僕の場合、後は OpenMP で parallel for を使うのが多いので、割と手書きすることが多いです。

まあなんかこんな感じで count_for 関数テンプレートとか作れば良いのでは、とか思ったりするんですけどね。(適当に書いたので動くかは知らない)

template<class Counter, class Func>
void count_for(Counter begin, Counter end, Func f) {
#ifdef _OPENMP
#pragma omp parallel for
#endif
  for(Counter i = begin; begin != end; ++i) { f(i); }
}

万能数値計算型 URR

32bit でも現在の int をしのぐ膨大な桁を扱える。

ただ、その特性上 +1 〜 -1 の範囲外になると値のぶれが激しいとかなんとか。

特殊数 (NaN とか INF)を表現しないらしいので、一部の人にとっては非常に便利らしい。

C++ Transactional Memory言語拡張の紹介

Relaxed Transaction はキャンセル不可らしいのだが、使いどころが怪しい。

並列化したときに複数の状態を書き換える、書き換えようとしてエラーが生じたので巻き戻す、みたいな操作は欲しいことが多すぎるので、できれば欲しいな、と。

家に帰るまでが遠足です

タイトルは良いとして、Boost.Build の話。

「コンパイルして実行する」ところまでが C++ であって、「プリプロセス完了時には全てが終わっている」とか「コンパイルしたら全てが終わっている」とかは特殊な訓練を受けているのでまねしないでくださいね、という話。

まじめに書くと、bjam は feature とか、依存関係の伝搬とかでコンパイルも実行もしやすい環境が提供されているので、みんな積極的に使うと幸せになれます、という話。

デバッグビルドしたときとリリースビルドしたときで挙動が変わって実行時エラーが発生するとか結構あり得る話だと思うので、両方のバージョンを一緒にビルドしてテストできるのは良いなあ、と思います。

ディスカッション

僕がテーブルマスターをしたテーブルは最初ひどかったです。

色々与太話をしていたら、誰かが Concept ! と叫んで、妹!と叫んだら妹 Concept を作っていました。

僕の考えた最狂の妹 Concept

  1. いつも寄り添う
  2. 結婚しない
  3. 年を取らない
  4. トイレに行かない
  5. お風呂に一緒に入る
  6. 一緒のベッドで寝る

3番と4番を見て明らかに人間でない、という話をしていたら、誰が妹 Concept は人間 Concept を満たしていると言った?という話だったので、妹 Concept は人外にも適用可能です。

後、「妹がトイレに行かないとトイレで鉢合わせしてきゃーイベントができないじゃないか」と(たしか)あおいたんが「その発想はなかった」と全員が思った物言いをしてきたので、トイレ able な妹と non トイレ able な妹を定義することで解決しました。

後は割とまじめ、シャッフル後では、割と僕がうちの大学を dis ったりとか、Effective C++ は今買って読むのは微妙だとか、テンプレートで継承を無くせるとか、そもそも継承より包含を考えるべきとかって話をしてました。

最後のシャッフルでは、まさかのくらいおらいと先生が光臨なされましたが、終止 Concept の話で終わりました。ゆるい Concept 的な話は実は標準化委員会でも話があったらしく、考えていたら時間がなくなったので C++11 ではなくなったという流れだったとか。

懇親会と2次会

懇親会では、でちまるさんとくらいおさんが関西ネタで盛り上がっていた記憶しかないです。そして周りの他のテーブルが振り向く。

後、アキラさんから言われてしまいましたが、僕は一応某 A 社で働いてますよ?

この界隈の某社の社員&アルバイトも多すぎますが、某社への見学者も多すぎるぐらい居るような気がしました。

2次会は僕がなぜか行ってしまったのはカラオケでしたが、カラオケを歌えるほどの喉は既になく、謎の文書を読んでました。すみません英語だったので半分ぐらいしか理解できてないです。

歌おうとしたら、直前でタイムオーバーでした...

終わり

とりあえず、わんくま横浜行きたいので9月1日に闇鍋はしないことにしました。