C++ ScopeGuard 0x

C++0xの機能を解禁したスコープガードのシンタックス検討のもよう.
8
くっくっkura 🇯🇵🦀 @PG_kura

なるほど・・・カッコ閉じを書かせないために operator->* にラムダ式を渡すと・・・これならすっきり書けるしローカル変数もキャプチャできる。

2010-09-22 00:49:53
くっくっkura 🇯🇵🦀 @PG_kura

他の演算子 * とか + とかでもいいけど演算子の優先度が低い奴を選んだほうがいいから ->* なわけかー。

2010-09-22 00:51:59
めるぽん.c @melponn

F& と F&& の両方を用意する理由が分からないので実際に書いてみるか… .

2010-09-22 00:56:43
くっくっkura 🇯🇵🦀 @PG_kura

マクロ怖い・・・完全に C++ に擬態しちょる・・・。

2010-09-22 00:57:04
でちまるさん(実際かわいい) @decimalbloat

できればセミコロンは削りたいけどさすがに無理だった。

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

日記書いた: std::unique_ptr でスコープガード: http://bit.ly/cktNo8

2010-09-22 01:01:21
でちまるさん(実際かわいい) @decimalbloat

lvalue版はコピーしたくないでしょうおいぃ!という気持ちで用意しました。rvalue版はコピーしないと死んでるでしょうおいぃ!という気持ちで用意しました。

2010-09-22 01:02:08
めるぽん.c @melponn

@decimalbloat scope_exit_helper::operator->* に lvalue 渡したら F が A& に推論されて A& が格納されるんじゃないですか?

2010-09-22 01:08:10
普通のC++使い、銀天すばる @SubaruG

それは言わない約束です。 RT @melponn: 正直これだけでいい気がする http://ideone.com/CbwHm

2010-09-22 01:08:24
めるぽん.c @melponn

@decimalbloat マクロ使えば更に短く書けるのはステキだと思います!

2010-09-22 01:09:14
めるぽん.c @melponn

@decimalbloat マクロ使えば更に短く書けるのはステキだと思います!

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

uniuqe_ptr さんを使った利点としては release や move できるという点がですね

2010-09-22 01:09:25
でちまるさん(実際かわいい) @decimalbloat

@melponn はい。まぁ後で考えたら付けなくてもいいなーと思ったのですが、いいじゃないですかredundandancy

2010-09-22 01:10:05
でちまるさん(実際かわいい) @decimalbloat

@melponn はい。まぁ後で考えたら付けなくてもいいなーと思ったのですが、いいじゃないですかredundandancy

2010-09-22 01:10:05
普通のC++使い、銀天すばる @SubaruG

まぁそれも bool の変数をちょいと用意してやればいい問題ないんですけどね。明らかに unique_ptr さんはオーバースペック。

2010-09-22 01:10:25
めるぽん.c @melponn

もしかしてscope_exitネタってマジレスしたら負けな世界だったの・・・?

2010-09-22 01:11:56
はるえす@イカのフレンズ @Rayerd

C++がオブジェクトにブロックを渡せれば...

2010-09-22 01:12:31
普通のC++使い、銀天すばる @SubaruG

@melponn や、僕が勝手に「如何に車輪を再開発しないで出来るか」っていう縛りをやってただけです><

2010-09-22 01:13:45