若年寄(もう若くない)
@kikairoya
optional<T>ってsizeof(T)のほかにsizeof(bool)を要求するもんだと思ってたんだけど違うのかな [宮崎産を食べよう]
2010-06-03 09:52:06
普通のC++使い、銀天すばる
@SubaruG
@kikairoya だから保持しているポインタが NULL かどうかをチェックすれば、それで有効か無効かのチェックは出来るわけです。
2010-06-03 09:55:11
普通のC++使い、銀天すばる
@SubaruG
T& x = *sitatic_cast<T*>(0); boost::optional<T&> opt = x; とか書くと、そりゃフラグも必要かもだけど、使った瞬間未定義だよねっていう
2010-06-03 09:58:10
普通のC++使い、銀天すばる
@SubaruG
現状、 rebind 出来て NULL も取れる参照ってのは、 T* と optional<T&> しかないんですよ?
2010-06-03 10:01:28
若年寄(もう若くない)
@kikairoya
A reference shall be initialized to refer to a valid object. だからoptional<T &>を特殊化してないのはそもそもアウトかな [宮崎産を食べよう]
2010-06-03 10:03:02
普通のC++使い、銀天すばる
@SubaruG
でも optional<T&> が T* より大きくなる理由はない。だって optional<T&> って T* そのものだから。
2010-06-03 10:04:10
普通のC++使い、銀天すばる
@SubaruG
束縛するときの構文が違うだけで、使うときは if( p ){ cout << *p << endl; } とか、全く一緒。
2010-06-03 10:05:28
若年寄(もう若くない)
@kikairoya
しかしoptional_baseの中では参照をちゃんと特別扱いしている・・・そこまでするなら特殊化しろよw [宮崎産を食べよう]
2010-06-03 10:06:08
若年寄(もう若くない)
@kikairoya
言いだしっぺ RT @melponn: 誰か何でoptional<T&>を特殊化していないのかを BoostML にですね・・・
2010-06-03 10:07:56
若年寄(もう若くない)
@kikairoya
ところでoptional/optional.hppがGNUスタイルなのは誰かの嫌がらせですかね [宮崎産を食べよう]
2010-06-03 10:10:04