>>53
ポインタが指すメモリにアクセスするつもりならマズイ。
deleteした時点でもう使えなくなっている。


ところで48が気になったのでremove_pointerを読んでみた。
それで48の望む動作をするコードが一応出来た。

template<typename T> struct remove_pointer
{
};

template<typename T> struct remove_pointer<T*>
{
     typedef T type;
};

template<typename TPTR> struct Hoge
{
     TPTR p;
     void create()
     {
         p = new remove_pointer<TPTR>::type;
     }
};

テンプレートに慣れていないせいなのかなんかキモイ。
やはり普通に元の型でやるべきだと思った。