Проверка размера массива 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
Размер массива.