std::is_bounded_array (3) - Linux Manuals

std::is_bounded_array: std::is_bounded_array


std::is_bounded_array - std::is_bounded_array


Defined in header <type_traits>
template< class T > (since C++20)
struct is_bounded_array;

Checks whether T is an array type of known bound. Provides the member constant value which is equal to true, if T is an array type of known bound. Otherwise, value is equal to false.

Template parameters

T - a type to check

Helper variable template

template< class T > (since C++20)
inline constexpr bool is_bounded_array_v = is_bounded_array<T>::value;

Inherited from std::integral_constant

Member constants

value true if T is an array type of known bound , false otherwise
         (public static member constant)

Member functions

              converts the object to bool, returns value
operator bool (public member function)

operator() returns value
              (public member function)

Member types

Type Definition
value_type bool
type std::integral_constant<bool, value>

Possible implementation

  template<class T>
  struct is_bounded_array: std::false_type {};

  template<class T, std::size_t N>
  struct is_bounded_array<T[N]> : std::true_type {};


// Run this code

  #include <iostream>
  #include <type_traits>

  class A {};

  int main()
      std::cout << std::boolalpha;
      std::cout << std::is_bounded_array_v<A> << '\n';
      std::cout << std::is_bounded_array_v<A[]> << '\n';
      std::cout << std::is_bounded_array_v<A[3]> << '\n';
      std::cout << std::is_bounded_array_v<float> << '\n';
      std::cout << std::is_bounded_array_v<int> << '\n';
      std::cout << std::is_bounded_array_v<int[]> << '\n';
      std::cout << std::is_bounded_array_v<int[3]> << '\n';



See also

is_array checks if a type is an array type
                   (class template)

is_unbounded_array checks if a type is an array type of unknown bound
                   (class template)

extent obtains the size of an array type along a specified dimension
                   (class template)