Как получить количество элементов в массиве std :: без необходимости создавать свой экземпляр? - PullRequest
9 голосов
/ 13 марта 2020

Существует std::array<T, N>::size(), но это не статично c, поэтому для него требуется экземпляр std::array. Есть ли способ получить возвращаемое значение (которое является N из std::array<T, N>) без необходимости создания экземпляра массива? Для обычного массива я мог бы использовать sizeof, но я не вижу гарантии, что sizeof(std::array<T, N>) == N * sizeof(T) будет истинным.

1 Ответ

14 голосов
/ 13 марта 2020

Там std::tuple_size<std::array>.

static_assert(std::tuple_size<std::array<int, 5>>::value == 5);
...