如何在无需创建其实例的情况下获取 std::array<T, N> 中的元素数量?

dra*_*oot 9 c++ arrays sizeof c++11

std::array<T, N>::size(),但它是非静态的,所以它需要一个 的实例std::array。有没有办法获得它返回的值(即Nof std::array<T, N>)而不必构造数组的实例?对于普通数组,我可以使用sizeof,但我不能保证这sizeof(std::array<T, N>) == N * sizeof(T)是真的。

0x4*_*2D2 14

std::tuple_size<std::array>

static_assert(std::tuple_size<std::array<int, 5>>::value == 5);
Run Code Online (Sandbox Code Playgroud)

  • @JesperJuhl 实际上不, `std::size()` 需要数组的实例。 (2认同)