ype traits") ]  Unary type traits

Unary type traits can be used to query the boolean properties of a type at
compile time.

All these type traits satisfy [ UnaryTypeTrait
](/w/cpp/named_req/UnaryTypeTrait "cpp/named req/UnaryTypeTrait") , the base
characteristic of each type trait is either  [ std::true_type
](/w/cpp/types/integral_constant "cpp/types/integral constant") or  [
std::false_type ](/w/cpp/types/integral_constant "cpp/types/integral
constant") , depending on whether the corresponding condition is met.

#####  Primary type categories  
  
---  
Defined in header ` [ <type_traits> ](/w/cpp/header/type_traits
"cpp/header/type traits") `  
[ is_void  ](/w/cpp/types/is_void "cpp/types/is void") (C++11)  |  checks if a type is  void    
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_void&action=edit)  
[ is_null_pointer  ](/w/cpp/types/is_null_pointer "cpp/types/is null pointer") (C++14)  |  checks if a type is  [ std::nullptr_t ](/w/cpp/types/nullptr_t "cpp/types/nullptr t")   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_null_pointer&action=edit)  
[ is_integral  ](/w/cpp/types/is_integral "cpp/types/is integral") (C++11)  |  checks if a type is an integral type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_integral&action=edit)  
[ is_floating_point  ](/w/cpp/types/is_floating_point "cpp/types/is floating point") (C++11)  |  checks if a type is a floating-point type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_floating_point&action=edit)  
[ is_array  ](/w/cpp/types/is_array "cpp/types/is array") (C++11)  |  checks if a type is an array type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_array&action=edit)  
[ is_enum  ](/w/cpp/types/is_enum "cpp/types/is enum") (C++11)  |  checks if a type is an enumeration type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_enum&action=edit)  
[ is_union  ](/w/cpp/types/is_union "cpp/types/is union") (C++11)  |  checks if a type is a union type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_union&action=edit)  
[ is_class  ](/w/cpp/types/is_class "cpp/types/is class") (C++11)  |  checks if a type is a non-union class type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_class&action=edit)  
[ is_function  ](/w/cpp/types/is_function "cpp/types/is function") (C++11)  |  checks if a type is a function type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_function&action=edit)  
[ is_pointer  ](/w/cpp/types/is_pointer "cpp/types/is pointer") (C++11)  |  checks if a type is a pointer type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_pointer&action=edit)  
[ is_lvalue_reference  ](/w/cpp/types/is_lvalue_reference "cpp/types/is lvalue reference") (C++11)  |  checks if a type is an _lvalue reference_   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_lvalue_reference&action=edit)  
[ is_rvalue_reference  ](/w/cpp/types/is_rvalue_reference "cpp/types/is rvalue reference") (C++11)  |  checks if a type is an _rvalue reference_   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_rvalue_reference&action=edit)  
[ is_member_object_pointer  ](/w/cpp/types/is_member_object_pointer "cpp/types/is member object pointer") (C++11)  |  checks if a type is a pointer to a non-static member object   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc