is_nothrow_invocable  is_nothrow_invocable_r  ](/w/cpp/types/is_invocable "cpp/types/is invocable") (C++17)  |  checks if a type can be invoked (as if by  [ std::invoke ](/w/cpp/utility/functional/invoke "cpp/utility/functional/invoke") ) with the given argument types   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_invocable&action=edit)  
  
####  [ [ edit ](/mwiki/index.php?title=cpp/meta&action=edit&section=7 "Edit
section: Type transformations") ]  Type transformations

Type transformation traits transform one type to another following some
predefined rules.

All these type traits satisfy [ TransformationTrait
](/w/cpp/named_req/TransformationTrait "cpp/named req/TransformationTrait") .

#####  Const-volatility specifiers  
  
---  
Defined in header ` [ <type_traits> ](/w/cpp/header/type_traits
"cpp/header/type traits") `  
[ remove_cv  remove_const  remove_volatile  ](/w/cpp/types/remove_cv "cpp/types/remove cv") (C++11)  (C++11)  (C++11)  |  removes  const  and/or  volatile  specifiers from the given type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_remove_cv&action=edit)  
[ add_cv  add_const  add_volatile  ](/w/cpp/types/add_cv "cpp/types/add cv") (C++11)  (C++11)  (C++11)  |  adds  const  and/or  volatile  specifiers to the given type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_add_cv&action=edit)  
  
#####  References  
  
Defined in header ` [ <type_traits> ](/w/cpp/header/type_traits
"cpp/header/type traits") `  
[ remove_reference  ](/w/cpp/types/remove_reference "cpp/types/remove reference") (C++11)  |  removes a reference from the given type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_remove_reference&action=edit)  
[ add_lvalue_reference  add_rvalue_reference  ](/w/cpp/types/add_reference "cpp/types/add reference") (C++11)  (C++11)  |  adds an _lvalue_ or _rvalue_ reference to the given type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_add_reference&action=edit)  
  
#####  Sign modifiers  
  
Defined in header ` [ <type_traits> ](/w/cpp/header/type_traits
"cpp/header/type traits") `  
[ make_signed  ](/w/cpp/types/make_signed "cpp/types/make signed") (C++11)  |  makes the given integral type signed   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_make_signed&action=edit)  
[ make_unsigned  ](/w/cpp/types/make_unsigned "cpp/types/make unsigned") (C++11)  |  makes the given integral type unsigned   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_make_unsigned&action=edit)  
  
#####  Arrays  
  
Defined in header ` [ <type_traits> ](/w/cpp/header/type_traits
"cpp/header/type traits") `  
[ remove_extent  ](/w/cpp/types/remove_extent "cpp/types/remove extent") (C++11)  |  removes one extent from the given array type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_remove_extent&action=edit)  
[ remove_all_extents  ](/w/cpp/types/remove_all_extents "cpp/types/remove all extents") (C++11)  |  removes all extents from the given array type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_remove_all_extents&action=edit)  
  
#####  Pointers  
  
Defined in header ` [ <type_traits> ](/w/cpp/header/type_traits
"cpp/header/type traits") `  
[ remove_pointer  ](/w/cpp/types/remove_pointer "cpp/types/remove pointer") (C++11)  |  removes a pointer from the given type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_remove_pointer&action=edit)  
[ add_pointer  ](/w/cpp/types/add_pointer "cpp/types/add pointer") (C++11)  |  adds a pointer to the given t