>>280 ごめん途中で送信してしまった
func(){
smart_ptr<foo> bar(new foo);
なんかごにょごにょ
} <- barだけしか使ってないならここで解放

これが基本だが、スマポ同士で代入ができるやつは関数の戻り値に渡したりするとスコープを超えられるのもある。
なので、いろいろな場所で使っていても、結果的にすべて共有しなくなった時にdeleteしてくれたりする。