C++0x のスマート ポインタの中で、私が一番良く使うのは std::shared_ptr です。 std::shared_ptr<Image> foo1(const std::uint32_t iWidth, const std::uint32_t iHeight, const std::size_t iRowbytes) { std::shared_ptr<Image> aImage(new Image(iWidth, iHeight, iRowbytes)); foo2(aImage->getPixelData(), aImage->getWidth(), aImage->getHeight()); return aImage; } こんな感じで使うのですが、C++0x には std::shared_ptr 構築用ヘルパとして std::make_shared メソッドが提供されて