std::is_union (3) - Linux Manuals

std::is_union: std::is_union


std::is_union - std::is_union


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

Checks whether T is a union type. Provides the member constant value, which is equal to true if T is a union type . Otherwise, value is equal to false.

Template parameters

T - a type to check

Helper variable template

template< class T > (since C++17)
inline constexpr bool is_union_v = is_union<T>::value;

Inherited from std::integral_constant

Member constants

value true if T is a union type , 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>


// Run this code

  #include <iostream>
  #include <type_traits>

  struct A {};

  typedef union {
      int a;
      float b;
  } B;

  struct C {
      B d;

  int main()
      std::cout << std::boolalpha;
      std::cout << std::is_union<A>::value << '\n';
      std::cout << std::is_union<B>::value << '\n';
      std::cout << std::is_union<C>::value << '\n';
      std::cout << std::is_union<int>::value << '\n';



See also

is_class checks if a type is a non-union class type
         (class template)