std::tuple_size(std::array)(3)

NAME
std::tuple_size(std::array) - std::tuple_size(std::array)

Synopsis
   Defined in header <array>
   template< class T, std::size_t N >
   struct tuple_size< std::array<T, N> > : (since C++11)
   std::integral_constant<std::size_t, N>
   { };
   Provides access to the number of elements in an std::array as a compile-time
   constant expression. Inherited from std::integral_constant

Member constants
   value N, the number of elements in the array
   [static] (public static member constant)

Member functions
   operator std::size_t converts the object to std::size_t, returns value
                        (public member function)
   operator() returns value
   (C++14) (public member function)

Member types
   Type Definition
   value_type std::size_t
   type std::integral_constant<std::size_t, value>

Example
// Run this code
 #include <iostream>
 #include <array>
 template<class T>
 void test(T)
 {
     int a[std::tuple_size<T>::value]; // can be used at compile time
     std::cout << std::size(a) << '\n';
 }
 int main()
 {
     std::array<float, 3> arr;
     test(arr);
 }

Output:
 3

See also
   Structured binding (C++17) binds the specified names to sub-objects or tuple
                        elements of the initializer
   std::tuple_size<std::tuple> obtains the size of tuple at compile time
   (C++11) (class template specialization)