std::is_unbounded_array (3) - Linux Manuals

std::is_unbounded_array: std::is_unbounded_array


std::is_unbounded_array - std::is_unbounded_array


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

Checks whether T is an array_type_of_unknown_bound. Provides the member constant value which is equal to true, if T is an array type of unknown 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_unbounded_array_v = is_unbounded_array<T>::value;

Inherited from std::integral_constant

Member constants

value true if T is an array type of unknown 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_unbounded_array: std::false_type {};

  template<class T>
  struct is_unbounded_array<T[]> : std::true_type {};


// Run this code

  #include <iostream>
  #include <type_traits>

  class A {};

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



See also

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

is_bounded_array checks if a type is an array type of known bound
                 (class template)

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