ype   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_add_pointer&action=edit)  
  
#####  Other transformations  
  
Defined in header ` [ <type_traits> ](/w/cpp/header/type_traits
"cpp/header/type traits") `  
[ aligned_storage  ](/w/cpp/types/aligned_storage "cpp/types/aligned storage") (C++11)  (deprecated in C++23)  |  defines the type suitable for use as uninitialized storage for types of given size   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_aligned_storage&action=edit)  
[ aligned_union  ](/w/cpp/types/aligned_union "cpp/types/aligned union") (C++11)  (deprecated in C++23)  |  defines the type suitable for use as uninitialized storage for all given types   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_aligned_union&action=edit)  
[ decay  ](/w/cpp/types/decay "cpp/types/decay") (C++11)  |  applies type transformations as when passing a function argument by value   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_decay&action=edit)  
[ remove_cvref  ](/w/cpp/types/remove_cvref "cpp/types/remove cvref") (C++20)  |  combines  [ std::remove_cv ](/w/cpp/types/remove_cv "cpp/types/remove cv") and  [ std::remove_reference ](/w/cpp/types/remove_reference "cpp/types/remove reference")   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_remove_cvref&action=edit)  
[ enable_if  ](/w/cpp/types/enable_if "cpp/types/enable if") (C++11)  |  conditionally [ removes ](/w/cpp/language/sfinae "cpp/language/sfinae") a function overload or template specialization from overload resolution   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_enable_if&action=edit)  
[ conditional  ](/w/cpp/types/conditional "cpp/types/conditional") (C++11)  |  chooses one type or another based on compile-time boolean   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_conditional&action=edit)  
[ common_type  ](/w/cpp/types/common_type "cpp/types/common type") (C++11)  |  determines the common type of a group of types   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_common_type&action=edit)  
[ common_reference  basic_common_reference  ](/w/cpp/types/common_reference "cpp/types/common reference") (C++20)  |  determines the common reference type of a group of types   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_common_reference&action=edit)  
[ underlying_type  ](/w/cpp/types/underlying_type "cpp/types/underlying type") (C++11)  |  obtains the underlying integer type for a given enumeration type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_underlying_type&action=edit)  
[ result_of  invoke_result  ](/w/cpp/types/result_of "cpp/types/result of") (C++11)  (removed in C++20)  (C++17)  |  deduces the result type of invoking a callable object with a set of arguments   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_result_of&action=edit)  
[ void_t  ](/w/cpp/types/void_t "cpp/types/void t") (C++17)  |  void variadic alias template   
(alias template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_void_t&action=edit)  
[ type_identity  ](/w/cpp/types/type_identity "cpp/types/type identity") (C++20)  |  returns the type argument unchanged   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_type_identity&action=edit)  
  
####  [ [ edit ](/mwiki/index.php?title=cpp/meta&action=edit&section=8 "Edit
section: Logical operations") ]  Logical operations

Logical operator traits ap