Есть std::array<T, N>::size()
, но это не статично, поэтому требуется экземпляр std::array
. Есть ли способ получить значение, которое он возвращает (который является N
из std::array<T, N>
) без необходимости создания экземпляра массива? Для обычного массива я мог бы использовать sizeof
, но не вижу никакой гарантии, что sizeof(std::array<T, N>) == N * sizeof(T)
это правда.
@ShadowRanger Потому
—
Натан Оливер
sizeof(std::array<T, N>) == N * sizeof(T)
что не должно быть правдой.
Потому что массив может быть определен в другом месте или передан в качестве аргумента в шаблон.
—
dragonroot
Если вы хотите узнать количество элементов, просто используйте
—
JohnFilleau
N
.
@dragonroot Какой смысл всего этого, хотя? Если вам уже нужно
—
Реми Лебо
N
начать, нет необходимости проходить через все это, чтобы получить N
косвенные данные или подтвердить это N==N
. Какой конкретный вариант использования вы пытаетесь решить?
N
, почему вы должны попроситьarray
воспроизвести это для вас?