(C++23)  |  checks if a reference is bound to a temporary in copy-initialization   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_reference_converts_from_temporary&action=edit)  
  
####  [ [ edit ](/mwiki/index.php?title=cpp/meta&action=edit&section=5 "Edit
section: Property queries") ]  Property queries

Property query traits can be used to query the integral 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  [ std::  integral_constant
](http://en.cppreference.com/w/cpp/types/integral_constant) < [ std::  size_t
](http://en.cppreference.com/w/cpp/types/size_t) , Value  > , where  Value  is
the query result of the corresponding property.

Defined in header ` [ <type_traits> ](/w/cpp/header/type_traits
"cpp/header/type traits") `  
---  
[ alignment_of  ](/w/cpp/types/alignment_of "cpp/types/alignment of") (C++11)  |  obtains the type's alignment requirements   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_alignment_of&action=edit)  
[ rank  ](/w/cpp/types/rank "cpp/types/rank") (C++11)  |  obtains the number of dimensions of an array type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_rank&action=edit)  
[ extent  ](/w/cpp/types/extent "cpp/types/extent") (C++11)  |  obtains the size of an array type along a specified dimension   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_extent&action=edit)  
  
####  [ [ edit ](/mwiki/index.php?title=cpp/meta&action=edit&section=6 "Edit
section: Type relationships") ]  Type relationships

Type relationship traits can be used to query relationships between types at
compile time.

All these type traits satisfy [ BinaryTypeTrait
](/w/cpp/named_req/BinaryTypeTrait "cpp/named req/BinaryTypeTrait") , 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.

Defined in header ` [ <type_traits> ](/w/cpp/header/type_traits
"cpp/header/type traits") `  
---  
[ is_same  ](/w/cpp/types/is_same "cpp/types/is same") (C++11)  |  checks if two types are the same   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_same&action=edit)  
[ is_base_of  ](/w/cpp/types/is_base_of "cpp/types/is base of") (C++11)  |  checks if a type is derived from the other type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_base_of&action=edit)  
[ is_convertible  is_nothrow_convertible  ](/w/cpp/types/is_convertible "cpp/types/is convertible") (C++11)  (C++20)  |  checks if a type can be converted to the other type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_convertible&action=edit)  
[ is_layout_compatible  ](/w/cpp/types/is_layout_compatible "cpp/types/is layout compatible") (C++20)  |  checks if two types are [ _layout-compatible_ ](/w/cpp/language/data_members#Standard_layout "cpp/language/data members")   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_layout_compatible&action=edit)  
[ is_pointer_interconvertible_base_of  ](/w/cpp/types/is_pointer_interconvertible_base_of "cpp/types/is pointer interconvertible base of") (C++20)  |  checks if a type is a _pointer-interconvertible_ (initial) base of another type   
(class template)  [ [edit]
](https://en.cppreference.com/mwiki/index.php?title=Template:cpp/types/dsc_is_pointer_interconvertible_base_of&action=edit)  
[ is_invocable  is_invocable_r