OptionalかわいいよOptional

4
前へ 1 ・・ 4 5 次へ
鯉江 @koie

@SubaruG あ、T=U&のときにPartial Specializationしろよっ!ってはなしでしたか。

2010-06-03 09:07:42
鯉江 @koie

@SubaruG あ、T=U&のときにPartial Specializationしろよっ!ってはなしでしたか。

2010-06-03 09:07:42
普通のC++使い、銀天すばる @SubaruG

@koie 最初から T& の時には特別扱いしてますし。

2010-06-03 09:08:18
若年寄(もう若くない) @kikairoya

xx言語のあの機能いいなー → それC++のテンプレートとオペレータオーバロードで出来るよ [宮崎産を食べよう]

2010-06-03 09:12:17
若年寄(もう若くない) @kikairoya

ああそうかoptional<const T>を使えばmutableはほぼ完全に駆逐できるのか [宮崎産を食べよう]

2010-06-03 09:16:32
普通のC++使い、銀天すばる @SubaruG

@nyaocat 実質的に「任意タイミングで構築/破棄できるオブジェクト」なのですよね。あまりメジャーじゃないみたいですが

2010-06-03 09:16:36
普通のC++使い、銀天すばる @SubaruG

Boost.Optional に、 dispose() とか分かりやすい名前の破棄関数を用意すればよかったのに、と思わなくも無い。

2010-06-03 09:17:47
若年寄(もう若くない) @kikairoya

欲しいのはmutableじゃなくてdelayed constructionとかsaved resultだもんな [宮崎産を食べよう]

2010-06-03 09:17:53
普通のC++使い、銀天すばる @SubaruG

boost::optional<T const> はかなり有効。

2010-06-03 09:19:27
普通のC++使い、銀天すばる @SubaruG

C++で Rebindable!(T) を例外安全に作ろうとすると、 optional<T const> になります。

2010-06-03 09:20:02
若年寄(もう若くない) @kikairoya

optional<const T>を使えばglobal-ctorも駆逐できるか [宮崎産を食べよう]

2010-06-03 09:20:30
普通のC++使い、銀天すばる @SubaruG

いやまぁ制限をゆるくしていいなら、もっと効率良く作れるけど。

2010-06-03 09:21:11
若年寄(もう若くない) @kikairoya

確かboost::optional<T>はrebindを例外安全にするためにとんでもなくキモい黒魔術を使ってたような。variantのほうだっけ? [宮崎産を食べよう]

2010-06-03 09:21:47
普通のC++使い、銀天すばる @SubaruG

@kikairoya Optional は、例外安全に対しては基本的な保証しかしてないですよ。その分、どんな型でも高速です。

2010-06-03 09:22:41
普通のC++使い、銀天すばる @SubaruG

Boost.Optional は「メモリの寿命管理とオブジェクトの寿命管理をライブラリレベルで別々に行える」「実際の使用に関してはそんな事は意識しなくていい」というC++「らしさ」が最も端的に現れていて、しかも誰にとっても普通に有用な、名ライブラリ。

2010-06-03 09:32:42
普通のC++使い、銀天すばる @SubaruG

しかも適度に単純だから、メモリ管理を学ぶにも調度良い素材。

2010-06-03 09:34:17
普通のC++使い、銀天すばる @SubaruG

「それ Boost.Optional で出来るよ!」

2010-06-03 09:36:20
普通のC++使い、銀天すばる @SubaruG

ってーか今、 T に対して has_trivial_destructor<T> が true_type なら has_trivial_destructor< my_optional<T> > も true_type になるような俺々 optional を作ってる。

2010-06-03 09:41:44
普通のC++使い、銀天すばる @SubaruG

無論 sizeof(T*) == sizeof( my_optional<T&> ) だよ。

2010-06-03 09:42:46
普通のC++使い、銀天すばる @SubaruG

in-place construction も出来るよ。当然だね。

2010-06-03 09:43:16
めるぽん.c @melponn

いかん optional<T&> で無駄な領域がある妥当な理由がどう考えても分からない。ので @SubaruG が optional<T&> の特殊化を実装してくれるのを待とう。

2010-06-03 09:49:50
めるぽん.c @melponn

先生を付けるのを忘れていた・・・

2010-06-03 09:51:11
前へ 1 ・・ 4 5 次へ