1 2 3 4 5 6 7 8 9 10 11
namespace detail { template<typename T> struct PointerType { typedef T* Type; }; } template<typename T> class UniquePtr { typedef typename detail::PointerType<T> Pointer; };