Проверка размера массива tr1 во время компиляции

Я только что узнал, что boost:: array:: static_size не является частью tr1:: array, или, по крайней мере, его нет в моей реализации (GCC 4.2.1), и я не могу найти его ни в одной документации tr1.

Есть ли другой способ выполнить утверждение во время компиляции о количестве элементов в массиве tr1?

Например, следующее работает с массивом boost, но не с массивом tr1:

template<typename T>
void CheckArray(const T& input) {
  BOOST_STATIC_ASSERT(T::static_size >= 2);
}

Я знаю, что вместо этого я могу использовать массив boost, но мне любопытно.

Если нет способа сделать это, может кто-то знает, почему static_size не был включен в tr1? Это просто функция, которая была добавлена ​​для повышения после создания tr1?

1 ответ

Решение

Сам TR1 говорит, что std::tuple_size<array<T, N> >::value возвращается NРазмер массива.

Другие вопросы по тегам