c++ templates c++11 metaprogramming typetraits

C++ 11 es el rasgo de tipo is_same para las plantillas



templates c++11 (1)

Tienes que escribir el tuyo, pero es simple:

template<typename> struct is_std_array : std::false_type {}; template<typename T, std::size_t N> struct is_std_array<std::array<T,N>> : std::true_type {};

¿Es posible verificar que el tipo T es una serie std::array de tipo y tamaño arbitrarios?

Puedo verificar una matriz en particular, por ejemplo:

is_same<T, std::array<int,5>>::value

Pero me gustaría comprobar que T es una instanciación de std::array . Algo como abajo (que, por supuesto, no compila):

is_same<T, std::array>::value

¿Hay alguna manera de lograr esto (tal vez no usar is_same )?