STL auto_ptr のデバッグ豆知識
VisualC++2005,2008 限定です。
auto_ptr を使うと、生ポインタが隠蔽される為か、デバッガのウォッチ画面での確認が面倒になります。
この例で言うと、ap をウォッチしてみても CSub という型までは知ることが出来ますが、CSub の中身を見ることが出来ません。
ここで諦めてしまうとこですが、auto_ptr のメンバ変数 _Myptr までを入力(この例で言うと「ap._Myptr」と)するとアラ不思議、CSub の中身まで見ることが出来ます。
というか、手動で入力せずとも普通に見れて欲しいとこです。次期 VisualStudio2010 で是非対応して欲しいです。
なお、仮想関数を持たない非ポリモーフィックなクラスでは面倒みてくれないようで表示されません。(これは納得できます。)
しかし、その場合でも手動でキャストすると表示されます。「(CSub*)ap._Myptr」とします。
型がわかっている場合にしか使えませんが、多少はラクになるかもです。
ちなみに boost::shared_ptr は特別なことしなくても、メンバ変数 px が何故か普通に見れます。
となると、何故 auto_ptr だけダメなのか、
難しい記述をしているのか?
マイクロソフトが VisualStudio2005、2008 で何かやらかしてしまったのか?
上位エディションだと実はちゃんと見れるとか!? (自分 Standard エディション使ってます。)
少し興味沸くところですが・・・ま、いいかなと。
以上。中途半端なネタですみません。
TrackBacks
TrackBack URL : http://www.thinkridge.com/modules/wordpress/wp-trackback.php/89
この投稿には、まだコメントが付いていません