event, delegate

http://www.codeproject.com/cpp/acfdelegate.asp
C#delegateのようにoperator overloadでAddEventListener,RemoveEventListener的な事が出来るC++Delegate。速度はそんなに速くないらしいけど、どうせ起きる頻度から考えると、そこそこの速さでも問題無さそう。

しかし気になるのはDelegateを保持する容量。Windows.Forms.Controlなんてeventがいっぱい備わってるけど、内部的にはどんなふうに管理しているんだろう?

http://msdn2.microsoft.com/ja-jp/library/1dk48x94(VS.80).aspx
まぁWindowもどうせそんなに数を作るものでもないし、最近のPCはメモリをいっぱい積んでるから気にしないで良いって事なんだろうか?謎。Listenerをくっつけないで発動される事が無くてもメモリを消費するとしたらなんだか勿体無い。

http://hongliang.seesaa.net/article/7090383.html
http://msdn2.microsoft.com/ja-jp/library/yt1k2w4e(VS.80).aspx

う〜ん、やっぱりメモリ食うのか。それに無駄なメモリ操作も増えると…。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=27694&forum=7&2
と思ったら構文糖で実際はそんな事ないんだとか。

http://ufcpp.net/study/csharp/sp_event.html
event用のキーワードがあって制御を実装できるのか…。.NET1.0の頃にC#やってた時はdelegateとeventの違いを理解してなかったなぁ…。となると、キーワードを付けないでeventのフィールドを宣言した場合は、インスタンスのイベントフィールド毎にデリゲートのリストを作るような実装になっている、という事なんだろうか?