- 1 名前:デフォルトの名無しさん mailto:sage [2008/08/26(火) 12:01:17 ]
- C++標準ライブラリの一つ、STLについて。
前スレ 【C++】STL(Standard Template Library)相談室 9 pc11.2ch.net/test/read.cgi/tech/1204045410/ 過去ログ・リンク・書籍紹介は >>2 以降
- 765 名前:758 mailto:sage [2008/12/15(月) 22:46:02 ]
- ローカルのものをmapにはinsert出来ないということですか?
- 766 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 23:01:01 ]
- 764が言ってるのは、
自分でinsertを呼ぶよりも前に、WndProcが呼ばれて LPFUNC lpfn = hoge[ hWnd ]; で、hWndに対応する関数ポインタがヌルとして登録されてしまうってことでしょ
- 767 名前:758 mailto:sage [2008/12/15(月) 23:11:12 ]
- なるほどやはり詳細な仕様を知らないで使うとへんなとこでバグになりますねー。
つまり、findでイテレータを探して、そのイテレータの指す先が有効だった場合にlpfnに代入すればいいということでしょうか。
- 768 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 23:12:11 ]
- >>765
つ // LPFUNC lpfn = hoge[ hWnd ]; // if ( lpfn ) return ( lpfn )( hWnd, msg, wParam, lParam ) ? 0 : E_FAIL; これでinsertは成功
- 769 名前:デフォルトの名無しさん mailto:sage [2008/12/15(月) 23:18:39 ]
- わざわざエラー検査する必要ないのでは?
hoge[ hWnd ]=lpfn; でいいじゃない
- 770 名前:758 mailto:sage [2008/12/15(月) 23:25:16 ]
- 無事解決しました。>>764 >>766 >>768ありがとでした。
ちょっとSTL関係の本を探して勉強しなおしてきますw
- 771 名前:デフォルトの名無しさん mailto:sage [2008/12/16(火) 12:17:45 ]
- STLというよりWindowsAPI、ウィンドウ生成周りの勉強だと思う
- 772 名前:758 mailto:sage [2008/12/16(火) 17:26:11 ]
- CreateWindowが幾つかメッセージ送るのは知ってたんですが、
find()使わないでoperator[]使うと存在しないキーを参照しようとしたときに、 対応するキーが作られるのを知らなかったので、そこらへんの勉強をという意味です。
|

|