1.スマートポインタとは? boost::weak_ptrを利用するケースについてお話しする前に、まず、スマートポインタについての概要をおはなしする必要があります。なぜなら、boost::weak_ptrは、(ちょっと特殊な)スマートポインタの一種だからです。 スマートポインタとは、賢い(スマートな)ポインタという名前の由来からも想像できるかと思いますが、指し示すオブジェクトの後始末を自動化してくれる、ポインタのように振る舞うクラステンプレートのことです。 プログラミング言語C++では、メモリや各種ハンドルなどのリソースの管理にスマートポインタを利用します。スマートポインタを用いることで、リソースの解放が自動化され、リソースリーク問題を防ぐことができます。 残念ながら、現在のC++(C++03)標準では、汎用的に利用できるスマートポインタが提供されていません(std::auto_ptrが提