Just for completeness, you can write a character that is specialized for pointers:
template <class T> struct const_qualify { using type = T const; };
template <class T> struct const_qualify<T*> { using type = T const*; };
template <class T> struct const_qualify<T&> { using type = T const&; };
And then:
using CT = typename const_qualify<T>::type;
, , .