エラーハンドリング勉強会
の懇親会?みたいなのが無かったので(まあ私は聴講者その1に過ぎなかったのですが)、発表者のranhaさんと、nihaさんとeldeshさんを呼び出して(なんという不遜、なんという豪華メンバー)秋葉原で適当に話してきました。ありがとうございます。
覚え書き。C++0xにはパターンマッチ可能な多相バリアントが追加される。
型。
std::exception_ptr var;
値をboxing。
try{ throw 任意の型の任意の値; }catch(...){ var = std::current_exception(); }
追記。専用の関数が用意されているそうです。
var = std::make_exception_ptr(任意の型の任意の値);
値をパターンマッチで取り出す。
try{ std::rethrow_exception(var); }catch(int i){ ... }catch(std::string s){ ... }catch(...){ ... }
これはSMLでも使用実績のある由緒正しいテクニックらしい。
メモ。http://www.nminoru.jp/~nminoru/programming/stackoverflow_handling.htmlを穴が開くまで読む。