Togetter/min.tを安心してお使い頂くためのガイドラインを公開しました。
編集可能
2010年2月25日

C++03でのローカルクラスの使い道

元質問者です。 C++言語仕様にある謎のローカルクラス(関数内でのクラス宣言)のイカした使い方をぜひ教えて下さい! @redboltz さんをはじめとする回答者の皆様、どうもありがとうございました(_o_)
2
redboltz @redboltz

c++03でローカルクラスの使い道って、どんなのがありますかね? 思いつかないもので。。。

2010-02-24 16:16:27
zak @zakkas783

@redboltz function-object、というあたりさわりのないところはいいとして、どこかでリバースエンジニアリング抑止、というネタを見た気がします。

2010-02-24 16:27:23
redboltz @redboltz

@zakkas783 function objectの場合、テンプレートで受けられなくて使えないような気が

2010-02-24 16:31:28
zak @zakkas783

@redboltz ですね。イカした使いかた実例は一寸思い付きません…。

2010-02-24 16:35:17
ELD-R-ESH-2 @eldesh

@redboltz ダイナミックデリータの実装でローカルクラスをベースクラスとして使うとか。# カタカナばっかりだと間抜けっぽいな

2010-02-24 16:45:03
libめるぽん.a @melponn

アドホックに RTTI が欲しいときに使ってます。 RT @redboltz: c++03でローカルクラスの使い道って、どんなのがありますかね?思いつかないもので。。。

2010-02-24 17:07:25
libめるぽん.a @melponn

struct hoge_guard { hoge& v; hoge_guard(hoge& v_) : v(v_) { } ~hoge_guard() { v_.hogehoge(); } }; hoge_guard guard(h);

2010-02-24 17:11:33
redboltz @redboltz

shared_ptrのdeleter的なユースケースで全部スタック上ですますめたいなイメージですかね?RT @melponn: アドホックに RTTI が欲しいときに使ってます。 RT @redboltz: c++03でローカルクラスの使い道って、どんなのがありますかね?思いつか

2010-02-24 17:29:16
Akira Takahashi @cpp_akira

ローカルクラスよりinner classの使いどころがわからない。

2010-02-24 17:30:05
redboltz @redboltz

カタカナのせいかイメージがわいてません(汗)RT @eldesh: @redboltz ダイナミックデリータの実装でローカルクラスをベースクラスとして使うとか。# カタカナばっかりだと間抜けっぽいな

2010-02-24 17:30:44
Akira Takahashi @cpp_akira

ローカルクラスの使いどころ:BOOST_SCOPE_EXITが使えない状況で、同じことをする。

2010-02-24 17:31:16
ELD-R-ESH-2 @eldesh

@redboltz 言いたかったのはちょうどこれですw RT @redboltz: shared_ptrのdeleter的なユースケースで全部スタック上ですますめたいなイメージですかね?RT @melponn: アドホックに RTTI が欲しいときに使ってます。 RT @red

2010-02-24 17:38:58
👻 道化師 🃏 @wraith13

@repeatedly finally 代わりの用途だと思えばおk> http://togetter.com/li/7016 [電波注意]

2010-02-25 12:58:58
SKS/ファントムの申し子 @repeatedly

@wraith13 めるぽんさんの「アドホックにRTTIが欲しい」の後のコードがいまいち分からなかったりします.構造体の破棄でデストラクタ呼び出しを強制しているとは思うのですが,RTTIとどう関係あるのか

2010-02-25 13:01:15
SKS/ファントムの申し子 @repeatedly

俺の中でのRTTIのイメージってtypeidとかで実行時の型を取ってほげほげなので,それが狭すぎるのかもしれない.

2010-02-25 13:01:48
👻 道化師 🃏 @wraith13

@repeatedly 自分も文脈的に RAII の間違いだと思ふ。 [電波注意]

2010-02-25 13:07:14
SKS/ファントムの申し子 @repeatedly

D言語だと「いやこれRAIIのことでしょ」と反応できるが,C++だと「え,これもRTTIの範疇なの?」と思えるほどにC++はカオス.

2010-02-25 13:08:44

コメント

SKS/ファントムの申し子 @repeatedly 2010年2月25日
@melponn さんのRTTIはRAIIですかね.最初戸惑ってしまいました.
0
Yukinori NAKATA @yukinori_nakata 2010年2月25日
@cpp_akira さんの関連つぶやきと、たぶん関連している @cpp_akira さんと @repeatedly さんの RAII に関するつぶやきを追加しました。
0
Yukinori NAKATA @yukinori_nakata 2010年2月25日
RTTI→RAIIのつながりがたぶんきっちり拾えました。コメントありがとうございました。
0
Yukinori NAKATA @yukinori_nakata 2010年2月26日
RTTI繋がり(?)のつぶやきをもうちょっと追加。「誰でも編集可」なので関係なければBoost.Anyの流れは削って頂いても構いません。
0
SKS/ファントムの申し子 @repeatedly 2010年2月26日
Boost.Anyや最適化の話は別の問題だったので削除しました.
0
Yukinori NAKATA @yukinori_nakata 2010年2月26日
締めのつぶやき戴きました。ごちそうさまです。
0