>>553
そういうケースはそうかもしれないけど
じゃあこういうケースはどうするの?

vector<MyUniquePtr<IFoo>> v;

v.push_back(MyUniquePtr<FooX>(new FooX)); // 標準new、delete
v.push_back(MyUniquePtr<FooY>(FooY::Create(), FooY::Delete)); // 隠ぺいされた生成、破棄

FooZPool fac = FooZPool::GetInstance(); // プールされたFooZ
v.push_back(MyUniquePtr<FooZ>(fac.get(), [fac] (FooZ * p) { fac.release(p); }); // 借りたものは借りた場所へ

こういうのはデリーターの型固定じゃだるくね?