std::tr1::shared_ptr ならどうだ