La hay std::array<T, N>::size(), pero no es estática, por lo que requiere una instancia de std::array. ¿Hay alguna manera de obtener el valor que devuelve (que es el Nde std::array<T, N>) sin tener que construir una instancia de la matriz? Para una matriz normal, podría haberlo usado sizeof, pero no veo ninguna garantía de que sizeof(std::array<T, N>) == N * sizeof(T)sea cierto.
                9
            
  
            
N, ¿por qué necesita pedirarrayque se lo reproduzca?sizeof(std::array<T, N>) == N * sizeof(T)no tiene que ser cierto.N.Nque comenzar, no hay necesidad de pasar por todo esto para obtenerNindirectamente o validar esoN==N. ¿Cuál es el caso de uso real que estás tratando de resolver?Respuestas:
Hay
std::tuple_size<std::array>.fuente
std::size()requiere una instancia de la matriz.tuple_sizeasí, si ya conoce el tamaño de la matriz por adelantado para pasarlo a la plantilla. Tal vez este sería un ejemplo más significativo?using ArrayType = std::array<int, 5>; ... static_assert(std::tuple_size<ArrayType>::value == 5);