Подтвердить что ты не робот

С++ 11 - свойство типа is_same для шаблонов

Можно ли проверить, что тип T является std::array произвольного типа и размера?

Я могу проверить конкретный массив, например:

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

Но я хотел бы проверить, что T - это любая инстанция std::array. Что-то вроде ниже (что, конечно же, не компилируется):

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

Есть ли способ достичь этого (возможно, не используя is_same)?

4b9b3361

Ответ 1

Вы должны написать свой собственный, но это просто:

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 {};