, T::pointer , , , . SFINAE, , " ". , , SFINAE .
, , idiom void_t :
template<typename T>
using void_t = void;
template<typename T, typename = void>
struct get_pointer
{
using type = typename T::value_type*;
};
template<typename T>
struct get_pointer<T, void_t<typename T::pointer>>
{
using type = typename T::pointer;
};
, A, typename get_pointer<A>::type A::pointer, , A::value_type*
, , A::pointer , , , . A::pointer , , .