May 17, 2011newで作った複数種類のリソースを自動deleteしたい[Computer]
楽しいプログラミング言語は? と聞かれたら迷わずC++をあげたくなるこの頃ですが、ハードウェアが絡むプログラムをC++で組んでいる際に、表題の問題に出くわしました。すなわち、様々なリソースを新規作成(new)したあと、これをほったらかしにしておくとデッドロックが発生したりメモリが溢れるので、いらなくなった時点で消したい(delete)というお話です。C++でうまく組めば、あたらにnewで作成したリソースを手動で制御せずとも、いらなくなった時点(スコープから外れた時点)で自動的にdeleteしてくれるようなコードが組めるのでは、と思いやってみました。
なおこのコードですが、小型オートパイロットシステム TinyFeatherのリソース管理で活躍しています。kernel.hとkernel.cppには上記のコードをアレンジして入れこんであります。 ※普通のPCが対象でしたら、おとなしくboostをインストールしてshared_ptrを使ったほうがいいと思います、とのこと。 コメント
コメントする
|
スポンサード リンク
|