Є std::array<T, N>::size()
, але це нестатично, тому він вимагає екземпляра std::array
. Чи є спосіб , щоб отримати значення , яке вона повертає (який є N
в std::array<T, N>
) без того , щоб побудувати екземпляр масиву? Для нормального масиву я міг би використати sizeof
, але я не бачу гарантії, яка sizeof(std::array<T, N>) == N * sizeof(T)
б була правдою.
@ShadowRanger Тому що
—
NathanOliver
sizeof(std::array<T, N>) == N * sizeof(T)
це не повинно бути правдою.
Тому що масив може бути введений деінде в іншому місці або переданий як аргумент шаблону.
—
dragonroot
Якщо ви хочете знати кількість елементів, просто використовуйте
—
JohnFilleau
N
.
@dragonroot Який сенс у всьому цьому? Якщо ви вже повинні
—
Ремі Лебо
N
почати з цього, не потрібно проходити все це, щоб отримати це N
опосередковано або підтвердити це N==N
. Який фактичний випадок використання ви намагаєтеся вирішити?
N
, чому вам потрібно попроситиarray
відтворити це для вас?