1
普通のC++使い、銀天すばる @SubaruG
「なんとなく難しそう」と嫌うのは良くない。
普通のC++使い、銀天すばる @SubaruG
まぁ変態ライブラリも多いけどさぁ。
普通のC++使い、銀天すばる @SubaruG
変態じゃない必需品も多いんだってばー。
普通のC++使い、銀天すばる @SubaruG
# include <pstade/oven.hpp> はおまじないです、で始めるC++
普通のC++使い、銀天すばる @SubaruG
あぁ、 # include <boost/lambda/lambda.hpp> とか # include <boost/optional.hpp> とかも「おまじない」ですね。
普通のC++使い、銀天すばる @SubaruG
僕の枕元には稲葉さんの「Boost C++ Libraries プログラミング」がおいてあります。いやリアルに
普通のC++使い、銀天すばる @SubaruG
Boost.Optional は Maybe モナド的な使い方が綺麗にできるように工夫すべきだったかもなんだよ
普通のC++使い、銀天すばる @SubaruG
…といっても、これ以上変な演算子多重定義を追加されてもあれだから、必要に応じてユーザが拡張すればいい、でおkだったのかもm。
普通のC++使い、銀天すばる @SubaruG
寝ずにコード書いてたら気になったことがあったので、日記書いた。 Boost.Optional はさっさと爆発して Boost.Maybe に発展するべきだと思います。 http://d.hatena.ne.jp/gintenlabo/20100531/1275335373
汎用kumAGI @kumagi
@SubaruG 対称性が無い…どういう思想でこうなっているんでしょうね…。
普通のC++使い、銀天すばる @SubaruG
@kumagi 正直、よく分からないです。メーリスのログをあされば分かるのかもしれませんが、英語が苦手なもので…。 if 文中で optional を初期化することが多いので、他の optional から暗黙変換してくれないのはかなり痛いんですよね。
普通のC++使い、銀天すばる @SubaruG
Boost.Optional の魅力の半分がそこにある。
普通のC++使い、銀天すばる @SubaruG
だから、現状のOptionalはin-place専用にして、失敗するかもしれない計算に特化したMaybeを新たに作るべき。
普通のC++使い、銀天すばる @SubaruG
optional<T> について、いろいろと考察を進めていた。
普通のC++使い、銀天すばる @SubaruG
とりあえず今の Boost.Optional には圧倒的にユーティリティ軍が足りない。
普通のC++使い、銀天すばる @SubaruG
Maybeモナドに相当する機能、つまり初期化済みなら関数を適用し、未初期化なら関数を適用しないで none を返す、という動作は絶対に必要だろJK
普通のC++使い、銀天すばる @SubaruG
っていうか、なんでC++には関数合成演算子がないの?
普通のC++使い、銀天すばる @SubaruG
いろいろと不満が多すぎるんですよ常識的に考えて。
普通のC++使い、銀天すばる @SubaruG
まぁいいや。Boost.Optional用のユーティリティ作ろう。講義中だけど気にするか!
はるえす@イカのフレンズ @Rayerd
@SubaruG 初期化って、関数をバインドする、みたいなことですかね?
普通のC++使い、銀天すばる @SubaruG
@Rayerd 単純に、 none から構築されたなら未初期化、有効なTから構築されたら初期化済み、という感じで言ってました。
普通のC++使い、銀天すばる @SubaruG
boost::optional<T> は、未初期化状態と初期化済み状態を明示的に区別して扱うオブジェクトなんだぜ。
残りを読む(82)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?

ログインして広告を非表示にする
ログインして広告を非表示にする