やはり Boost.Optional は正義なのである。型変換コンストラクタが何故か explicit だったりするけど。
2010-06-03 00:32:46Boost.Optionalと言えば、if (x) f(*x);的なoptional<> xが値を保持しているときだけ関数fを適用するような関数がそろそろBoost.Optional本体に入っていいと思う。
2010-06-03 00:44:39思う。 RT @egtra: Boost.Optionalと言えば、if (x) f(*x);的なoptional<> xが値を保持しているときだけ関数fを適用するような関数がそろそろBoost.Optional本体に入っていいと思う。
2010-06-03 00:45:20optionalはget_optional_value_orが好きだけど、あまり使う機会がない。あとC#の??は簡潔でいいなあとか。
2010-06-03 00:49:18あらゆるものを、動的メモリ確保なしに default constructible にしてくれる optional は素敵だと思うんだぜ。
2010-06-03 00:51:27@egtra optional< optional<T> > でもいいですけど、連続して適用する場合に面倒だなぁ、と。
2010-06-03 00:52:39T が非 optional なら optional<T> を、 optional<U> なら optional<U> を返す add_optional メタ関数を作れば問題無し。
2010-06-03 00:57:37optional<T>& 引数はなにげに便利。ただし const 教的には邪道なので unique_ptr を返した方がいいかも。
2010-06-03 01:01:40Boost.Optional は placement new 関連を綺麗にラップしてくれるメモリ管理ライブラリとしての側面が大きいので、 Maybe モナドより強力だと思う。なんで標準じゃないの?
2010-06-03 01:06:01@SubaruG 標準ライブラリのエラーポリシーに関わるものなので慎重になってる・・・としてもC++0xはどでかいメジャーバージョンアップなので入れてもよかったと思います。TR2にご期待ください。
2010-06-03 01:07:22引数に使うことは考えたことがなかったが便利そう RT @SubaruG: optional<T>& 引数はなにげに便利。ただし const 教的には邪道なので unique_ptr を返した方がいいかも。
2010-06-03 01:24:28引数に使うことは考えたことがなかったが便利そう RT @SubaruG: optional<T>& 引数はなにげに便利。ただし const 教的には邪道なので unique_ptr を返した方がいいかも。
2010-06-03 01:24:28