libstdc++
Variable templates for type traits
Collaboration diagram for Variable templates for type traits:

Variables

template<typename _Tp >
constexpr bool std::has_unique_object_representations_v
 
template<typename _Tp >
constexpr bool std::is_aggregate_v
 
template<typename _Tp >
constexpr bool std::is_bounded_array_v
 
template<typename _Tp , typename _Up >
constexpr bool std::is_layout_compatible_v
 
template<typename _Base , typename _Derived >
constexpr bool std::is_pointer_interconvertible_base_of_v
 
template<typename _Tp >
constexpr bool std::is_unbounded_array_v
 
template<typename... _Bn>
constexpr bool std::conjunction_v
 
template<typename... _Bn>
constexpr bool std::disjunction_v
 
template<typename _Pp >
constexpr bool std::negation_v
 
template<typename _Tp >
constexpr bool std::is_void_v
 
template<typename _Tp >
constexpr bool std::is_null_pointer_v
 
template<typename _Tp >
constexpr bool std::is_integral_v
 
template<typename _Tp >
constexpr bool std::is_floating_point_v
 
template<typename _Tp >
constexpr bool std::is_array_v
 
template<typename _Tp >
constexpr bool std::is_array_v< _Tp[]>
 
template<typename _Tp , size_t _Num>
constexpr bool std::is_array_v< _Tp[_Num]>
 
template<typename _Tp >
constexpr bool std::is_pointer_v
 
template<typename _Tp >
constexpr bool std::is_lvalue_reference_v
 
template<typename _Tp >
constexpr bool std::is_lvalue_reference_v< _Tp & >
 
template<typename _Tp >
constexpr bool std::is_rvalue_reference_v
 
template<typename _Tp >
constexpr bool std::is_rvalue_reference_v< _Tp && >
 
template<typename _Tp >
constexpr bool std::is_member_object_pointer_v
 
template<typename _Tp >
constexpr bool std::is_member_function_pointer_v
 
template<typename _Tp >
constexpr bool std::is_enum_v
 
template<typename _Tp >
constexpr bool std::is_union_v
 
template<typename _Tp >
constexpr bool std::is_class_v
 
template<typename _Tp >
constexpr bool std::is_function_v
 
template<typename _Tp >
constexpr bool std::is_reference_v
 
template<typename _Tp >
constexpr bool std::is_reference_v< _Tp & >
 
template<typename _Tp >
constexpr bool std::is_reference_v< _Tp && >
 
template<typename _Tp >
constexpr bool std::is_arithmetic_v
 
template<typename _Tp >
constexpr bool std::is_fundamental_v
 
template<typename _Tp >
constexpr bool std::is_object_v
 
template<typename _Tp >
constexpr bool std::is_scalar_v
 
template<typename _Tp >
constexpr bool std::is_compound_v
 
template<typename _Tp >
constexpr bool std::is_member_pointer_v
 
template<typename _Tp >
constexpr bool std::is_const_v
 
template<typename _Tp >
constexpr bool std::is_const_v< const _Tp >
 
template<typename _Tp >
constexpr bool std::is_volatile_v
 
template<typename _Tp >
constexpr bool std::is_volatile_v< volatile _Tp >
 
template<typename _Tp >
constexpr bool std::is_trivial_v
 
template<typename _Tp >
constexpr bool std::is_trivially_copyable_v
 
template<typename _Tp >
constexpr bool std::is_standard_layout_v
 
template<typename _Tp >
constexpr bool std::is_pod_v
 
template<typename _Tp >
constexpr bool std::is_literal_type_v
 
template<typename _Tp >
constexpr bool std::is_empty_v
 
template<typename _Tp >
constexpr bool std::is_polymorphic_v
 
template<typename _Tp >
constexpr bool std::is_abstract_v
 
template<typename _Tp >
constexpr bool std::is_final_v
 
template<typename _Tp >
constexpr bool std::is_signed_v
 
template<typename _Tp >
constexpr bool std::is_unsigned_v
 
template<typename _Tp , typename... _Args>
constexpr bool std::is_constructible_v
 
template<typename _Tp >
constexpr bool std::is_default_constructible_v
 
template<typename _Tp >
constexpr bool std::is_copy_constructible_v
 
template<typename _Tp >
constexpr bool std::is_move_constructible_v
 
template<typename _Tp , typename _Up >
constexpr bool std::is_assignable_v
 
template<typename _Tp >
constexpr bool std::is_copy_assignable_v
 
template<typename _Tp >
constexpr bool std::is_move_assignable_v
 
template<typename _Tp >
constexpr bool std::is_destructible_v
 
template<typename _Tp , typename... _Args>
constexpr bool std::is_trivially_constructible_v
 
template<typename _Tp >
constexpr bool std::is_trivially_default_constructible_v
 
template<typename _Tp >
constexpr bool std::is_trivially_copy_constructible_v
 
template<typename _Tp >
constexpr bool std::is_trivially_move_constructible_v
 
template<typename _Tp , typename _Up >
constexpr bool std::is_trivially_assignable_v
 
template<typename _Tp >
constexpr bool std::is_trivially_copy_assignable_v
 
template<typename _Tp >
constexpr bool std::is_trivially_move_assignable_v
 
template<typename _Tp >
constexpr bool std::is_trivially_destructible_v
 
template<typename _Tp , typename... _Args>
constexpr bool std::is_nothrow_constructible_v
 
template<typename _Tp >
constexpr bool std::is_nothrow_default_constructible_v
 
template<typename _Tp >
constexpr bool std::is_nothrow_copy_constructible_v
 
template<typename _Tp >
constexpr bool std::is_nothrow_move_constructible_v
 
template<typename _Tp , typename _Up >
constexpr bool std::is_nothrow_assignable_v
 
template<typename _Tp >
constexpr bool std::is_nothrow_copy_assignable_v
 
template<typename _Tp >
constexpr bool std::is_nothrow_move_assignable_v
 
template<typename _Tp >
constexpr bool std::is_nothrow_destructible_v
 
template<typename _Tp >
constexpr bool std::has_virtual_destructor_v
 
template<typename _Tp >
constexpr size_t std::alignment_of_v
 
template<typename _Tp >
constexpr size_t std::rank_v
 
template<typename _Tp , size_t _Size>
constexpr size_t std::rank_v< _Tp[_Size]>
 
template<typename _Tp >
constexpr size_t std::rank_v< _Tp[]>
 
template<typename _Tp , unsigned _Idx = 0>
constexpr size_t std::extent_v
 
template<typename _Tp , size_t _Size>
constexpr size_t std::extent_v< _Tp[_Size], 0 >
 
template<typename _Tp , unsigned _Idx, size_t _Size>
constexpr size_t std::extent_v< _Tp[_Size], _Idx >
 
template<typename _Tp >
constexpr size_t std::extent_v< _Tp[], 0 >
 
template<typename _Tp , unsigned _Idx>
constexpr size_t std::extent_v< _Tp[], _Idx >
 
template<typename _Tp , typename _Up >
constexpr bool std::is_same_v
 
template<typename _Tp >
constexpr bool std::is_same_v< _Tp, _Tp >
 
template<typename _Base , typename _Derived >
constexpr bool std::is_base_of_v
 
template<typename _From , typename _To >
constexpr bool std::is_convertible_v
 
template<typename _Fn , typename... _Args>
constexpr bool std::is_invocable_v
 
template<typename _Fn , typename... _Args>
constexpr bool std::is_nothrow_invocable_v
 
template<typename _Ret , typename _Fn , typename... _Args>
constexpr bool std::is_invocable_r_v
 
template<typename _Ret , typename _Fn , typename... _Args>
constexpr bool std::is_nothrow_invocable_r_v
 

Detailed Description

Each variable is_xxx_v<T> is a boolean constant with the same value as the value member of the corresponding type trait is_xxx<T>.

Since
C++17 unless noted otherwise.

Variable Documentation

◆ alignment_of_v

template<typename _Tp >
constexpr size_t std::alignment_of_v
inlineconstexpr

Definition at line 3269 of file type_traits.

◆ conjunction_v

template<typename... _Bn>
constexpr bool std::conjunction_v
inlineconstexpr

Definition at line 245 of file type_traits.

◆ disjunction_v

template<typename... _Bn>
constexpr bool std::disjunction_v
inlineconstexpr

Definition at line 248 of file type_traits.

◆ extent_v

template<typename _Tp , unsigned _Idx = 0>
constexpr size_t std::extent_v
inlineconstexpr

Definition at line 3279 of file type_traits.

◆ extent_v< _Tp[], 0 >

template<typename _Tp >
constexpr size_t std::extent_v< _Tp[], 0 >
inlineconstexpr

Definition at line 3285 of file type_traits.

◆ extent_v< _Tp[], _Idx >

template<typename _Tp , unsigned _Idx>
constexpr size_t std::extent_v< _Tp[], _Idx >
inlineconstexpr

Definition at line 3287 of file type_traits.

◆ extent_v< _Tp[_Size], 0 >

template<typename _Tp , size_t _Size>
constexpr size_t std::extent_v< _Tp[_Size], 0 >
inlineconstexpr

Definition at line 3281 of file type_traits.

◆ extent_v< _Tp[_Size], _Idx >

template<typename _Tp , unsigned _Idx, size_t _Size>
constexpr size_t std::extent_v< _Tp[_Size], _Idx >
inlineconstexpr

Definition at line 3283 of file type_traits.

◆ has_unique_object_representations_v

template<typename _Tp >
constexpr bool std::has_unique_object_representations_v
inlineconstexpr

Definition at line 3331 of file type_traits.

◆ has_virtual_destructor_v

template<typename _Tp >
constexpr bool std::has_virtual_destructor_v
inlineconstexpr

Definition at line 3265 of file type_traits.

◆ is_abstract_v

template<typename _Tp >
constexpr bool std::is_abstract_v
inlineconstexpr

Definition at line 3177 of file type_traits.

◆ is_aggregate_v

template<typename _Tp >
constexpr bool std::is_aggregate_v
inlineconstexpr

is_aggregate_v - true if the type is an aggregate.

Since
C++17

Definition at line 3349 of file type_traits.

◆ is_arithmetic_v

template<typename _Tp >
constexpr bool std::is_arithmetic_v
inlineconstexpr

Definition at line 3140 of file type_traits.

◆ is_array_v

template<typename _Tp >
constexpr bool std::is_array_v
inlineconstexpr

Definition at line 3103 of file type_traits.

◆ is_array_v< _Tp[]>

template<typename _Tp >
constexpr bool std::is_array_v< _Tp[]>
inlineconstexpr

Definition at line 3105 of file type_traits.

◆ is_array_v< _Tp[_Num]>

template<typename _Tp , size_t _Num>
constexpr bool std::is_array_v< _Tp[_Num]>
inlineconstexpr

Definition at line 3107 of file type_traits.

◆ is_assignable_v

template<typename _Tp , typename _Up >
constexpr bool std::is_assignable_v
inlineconstexpr

Definition at line 3198 of file type_traits.

◆ is_base_of_v

template<typename _Base , typename _Derived >
constexpr bool std::is_base_of_v
inlineconstexpr

Definition at line 3299 of file type_traits.

◆ is_bounded_array_v

template<typename _Tp >
constexpr bool std::is_bounded_array_v
inlineconstexpr

True for a type that is an array of known bound.

Since
C++20

Definition at line 3425 of file type_traits.

◆ is_class_v

template<typename _Tp >
constexpr bool std::is_class_v
inlineconstexpr

Definition at line 3130 of file type_traits.

◆ is_compound_v

template<typename _Tp >
constexpr bool std::is_compound_v
inlineconstexpr

Definition at line 3148 of file type_traits.

◆ is_const_v

template<typename _Tp >
constexpr bool std::is_const_v
inlineconstexpr

Definition at line 3152 of file type_traits.

◆ is_const_v< const _Tp >

template<typename _Tp >
constexpr bool std::is_const_v< const _Tp >
inlineconstexpr

Definition at line 3154 of file type_traits.

◆ is_constructible_v

template<typename _Tp , typename... _Args>
constexpr bool std::is_constructible_v
inlineconstexpr

Definition at line 3187 of file type_traits.

◆ is_convertible_v

template<typename _From , typename _To >
constexpr bool std::is_convertible_v
inlineconstexpr

Definition at line 3301 of file type_traits.

◆ is_copy_assignable_v

template<typename _Tp >
constexpr bool std::is_copy_assignable_v
inlineconstexpr

Definition at line 3200 of file type_traits.

◆ is_copy_constructible_v

template<typename _Tp >
constexpr bool std::is_copy_constructible_v
inlineconstexpr

Definition at line 3191 of file type_traits.

◆ is_default_constructible_v

template<typename _Tp >
constexpr bool std::is_default_constructible_v
inlineconstexpr

Definition at line 3189 of file type_traits.

◆ is_destructible_v

template<typename _Tp >
constexpr bool std::is_destructible_v
inlineconstexpr

Definition at line 3207 of file type_traits.

◆ is_empty_v

template<typename _Tp >
constexpr bool std::is_empty_v
inlineconstexpr

Definition at line 3173 of file type_traits.

◆ is_enum_v

template<typename _Tp >
constexpr bool std::is_enum_v
inlineconstexpr

Definition at line 3126 of file type_traits.

◆ is_final_v

template<typename _Tp >
constexpr bool std::is_final_v
inlineconstexpr

Definition at line 3179 of file type_traits.

◆ is_floating_point_v

template<typename _Tp >
constexpr bool std::is_floating_point_v
inlineconstexpr

Definition at line 3100 of file type_traits.

◆ is_function_v

template<typename _Tp >
constexpr bool std::is_function_v
inlineconstexpr

Definition at line 3132 of file type_traits.

◆ is_fundamental_v

template<typename _Tp >
constexpr bool std::is_fundamental_v
inlineconstexpr

Definition at line 3142 of file type_traits.

◆ is_integral_v

template<typename _Tp >
constexpr bool std::is_integral_v
inlineconstexpr

Definition at line 3098 of file type_traits.

◆ is_invocable_r_v

template<typename _Ret , typename _Fn , typename... _Args>
constexpr bool std::is_invocable_r_v
inlineconstexpr

Definition at line 3308 of file type_traits.

◆ is_invocable_v

template<typename _Fn , typename... _Args>
constexpr bool std::is_invocable_v
inlineconstexpr

Definition at line 3303 of file type_traits.

◆ is_layout_compatible_v

template<typename _Tp , typename _Up >
constexpr bool std::is_layout_compatible_v
constexpr
Since
C++20

Definition at line 3464 of file type_traits.

◆ is_literal_type_v

template<typename _Tp >
constexpr bool std::is_literal_type_v
inlineconstexpr

Definition at line 3171 of file type_traits.

◆ is_lvalue_reference_v

template<typename _Tp >
constexpr bool std::is_lvalue_reference_v
inlineconstexpr

Definition at line 3112 of file type_traits.

◆ is_lvalue_reference_v< _Tp & >

template<typename _Tp >
constexpr bool std::is_lvalue_reference_v< _Tp & >
inlineconstexpr

Definition at line 3114 of file type_traits.

◆ is_member_function_pointer_v

template<typename _Tp >
constexpr bool std::is_member_function_pointer_v
inlineconstexpr

Definition at line 3123 of file type_traits.

◆ is_member_object_pointer_v

template<typename _Tp >
constexpr bool std::is_member_object_pointer_v
inlineconstexpr

Definition at line 3120 of file type_traits.

◆ is_member_pointer_v

template<typename _Tp >
constexpr bool std::is_member_pointer_v
inlineconstexpr

Definition at line 3150 of file type_traits.

◆ is_move_assignable_v

template<typename _Tp >
constexpr bool std::is_move_assignable_v
inlineconstexpr

Definition at line 3203 of file type_traits.

◆ is_move_constructible_v

template<typename _Tp >
constexpr bool std::is_move_constructible_v
inlineconstexpr

Definition at line 3194 of file type_traits.

◆ is_nothrow_assignable_v

template<typename _Tp , typename _Up >
constexpr bool std::is_nothrow_assignable_v
inlineconstexpr

Definition at line 3250 of file type_traits.

◆ is_nothrow_constructible_v

template<typename _Tp , typename... _Args>
constexpr bool std::is_nothrow_constructible_v
inlineconstexpr

Definition at line 3237 of file type_traits.

◆ is_nothrow_copy_assignable_v

template<typename _Tp >
constexpr bool std::is_nothrow_copy_assignable_v
inlineconstexpr

Definition at line 3253 of file type_traits.

◆ is_nothrow_copy_constructible_v

template<typename _Tp >
constexpr bool std::is_nothrow_copy_constructible_v
inlineconstexpr

Definition at line 3243 of file type_traits.

◆ is_nothrow_default_constructible_v

template<typename _Tp >
constexpr bool std::is_nothrow_default_constructible_v
inlineconstexpr

Definition at line 3240 of file type_traits.

◆ is_nothrow_destructible_v

template<typename _Tp >
constexpr bool std::is_nothrow_destructible_v
inlineconstexpr

Definition at line 3261 of file type_traits.

◆ is_nothrow_invocable_r_v

template<typename _Ret , typename _Fn , typename... _Args>
constexpr bool std::is_nothrow_invocable_r_v
inlineconstexpr

Definition at line 3311 of file type_traits.

◆ is_nothrow_invocable_v

template<typename _Fn , typename... _Args>
constexpr bool std::is_nothrow_invocable_v
inlineconstexpr

Definition at line 3305 of file type_traits.

◆ is_nothrow_move_assignable_v

template<typename _Tp >
constexpr bool std::is_nothrow_move_assignable_v
inlineconstexpr

Definition at line 3257 of file type_traits.

◆ is_nothrow_move_constructible_v

template<typename _Tp >
constexpr bool std::is_nothrow_move_constructible_v
inlineconstexpr

Definition at line 3246 of file type_traits.

◆ is_null_pointer_v

template<typename _Tp >
constexpr bool std::is_null_pointer_v
inlineconstexpr

Definition at line 3096 of file type_traits.

◆ is_object_v

template<typename _Tp >
constexpr bool std::is_object_v
inlineconstexpr

Definition at line 3144 of file type_traits.

◆ is_pod_v

template<typename _Tp >
constexpr bool std::is_pod_v
inlineconstexpr

Definition at line 3168 of file type_traits.

◆ is_pointer_interconvertible_base_of_v

template<typename _Base , typename _Derived >
constexpr bool std::is_pointer_interconvertible_base_of_v
constexpr
Since
C++20

Definition at line 3489 of file type_traits.

◆ is_pointer_v

template<typename _Tp >
constexpr bool std::is_pointer_v
inlineconstexpr

Definition at line 3110 of file type_traits.

◆ is_polymorphic_v

template<typename _Tp >
constexpr bool std::is_polymorphic_v
inlineconstexpr

Definition at line 3175 of file type_traits.

◆ is_reference_v

template<typename _Tp >
constexpr bool std::is_reference_v
inlineconstexpr

Definition at line 3134 of file type_traits.

◆ is_reference_v< _Tp & >

template<typename _Tp >
constexpr bool std::is_reference_v< _Tp & >
inlineconstexpr

Definition at line 3136 of file type_traits.

◆ is_reference_v< _Tp && >

template<typename _Tp >
constexpr bool std::is_reference_v< _Tp && >
inlineconstexpr

Definition at line 3138 of file type_traits.

◆ is_rvalue_reference_v

template<typename _Tp >
constexpr bool std::is_rvalue_reference_v
inlineconstexpr

Definition at line 3116 of file type_traits.

◆ is_rvalue_reference_v< _Tp && >

template<typename _Tp >
constexpr bool std::is_rvalue_reference_v< _Tp && >
inlineconstexpr

Definition at line 3118 of file type_traits.

◆ is_same_v

template<typename _Tp , typename _Up >
constexpr bool std::is_same_v
inlineconstexpr

Definition at line 3294 of file type_traits.

◆ is_same_v< _Tp, _Tp >

template<typename _Tp >
constexpr bool std::is_same_v< _Tp, _Tp >
inlineconstexpr

Definition at line 3296 of file type_traits.

◆ is_scalar_v

template<typename _Tp >
constexpr bool std::is_scalar_v
inlineconstexpr

Definition at line 3146 of file type_traits.

◆ is_signed_v

template<typename _Tp >
constexpr bool std::is_signed_v
inlineconstexpr

Definition at line 3182 of file type_traits.

◆ is_standard_layout_v

template<typename _Tp >
constexpr bool std::is_standard_layout_v
inlineconstexpr

Definition at line 3165 of file type_traits.

◆ is_trivial_v

template<typename _Tp >
constexpr bool std::is_trivial_v
inlineconstexpr

Definition at line 3161 of file type_traits.

◆ is_trivially_assignable_v

template<typename _Tp , typename _Up >
constexpr bool std::is_trivially_assignable_v
inlineconstexpr

Definition at line 3223 of file type_traits.

◆ is_trivially_constructible_v

template<typename _Tp , typename... _Args>
constexpr bool std::is_trivially_constructible_v
inlineconstexpr

Definition at line 3210 of file type_traits.

◆ is_trivially_copy_assignable_v

template<typename _Tp >
constexpr bool std::is_trivially_copy_assignable_v
inlineconstexpr

Definition at line 3226 of file type_traits.

◆ is_trivially_copy_constructible_v

template<typename _Tp >
constexpr bool std::is_trivially_copy_constructible_v
inlineconstexpr

Definition at line 3216 of file type_traits.

◆ is_trivially_copyable_v

template<typename _Tp >
constexpr bool std::is_trivially_copyable_v
inlineconstexpr

Definition at line 3163 of file type_traits.

◆ is_trivially_default_constructible_v

template<typename _Tp >
constexpr bool std::is_trivially_default_constructible_v
inlineconstexpr

Definition at line 3213 of file type_traits.

◆ is_trivially_destructible_v

template<typename _Tp >
constexpr bool std::is_trivially_destructible_v
inlineconstexpr

Definition at line 3234 of file type_traits.

◆ is_trivially_move_assignable_v

template<typename _Tp >
constexpr bool std::is_trivially_move_assignable_v
inlineconstexpr

Definition at line 3230 of file type_traits.

◆ is_trivially_move_constructible_v

template<typename _Tp >
constexpr bool std::is_trivially_move_constructible_v
inlineconstexpr

Definition at line 3219 of file type_traits.

◆ is_unbounded_array_v

template<typename _Tp >
constexpr bool std::is_unbounded_array_v
inlineconstexpr

True for a type that is an array of unknown bound.

Since
C++20

Definition at line 3434 of file type_traits.

◆ is_union_v

template<typename _Tp >
constexpr bool std::is_union_v
inlineconstexpr

Definition at line 3128 of file type_traits.

◆ is_unsigned_v

template<typename _Tp >
constexpr bool std::is_unsigned_v
inlineconstexpr

Definition at line 3184 of file type_traits.

◆ is_void_v

template<typename _Tp >
constexpr bool std::is_void_v
inlineconstexpr

Definition at line 3094 of file type_traits.

◆ is_volatile_v

template<typename _Tp >
constexpr bool std::is_volatile_v
inlineconstexpr

Definition at line 3156 of file type_traits.

◆ is_volatile_v< volatile _Tp >

template<typename _Tp >
constexpr bool std::is_volatile_v< volatile _Tp >
inlineconstexpr

Definition at line 3158 of file type_traits.

◆ negation_v

template<typename _Pp >
constexpr bool std::negation_v
inlineconstexpr

Definition at line 251 of file type_traits.

◆ rank_v

template<typename _Tp >
constexpr size_t std::rank_v
inlineconstexpr

Definition at line 3272 of file type_traits.

◆ rank_v< _Tp[]>

template<typename _Tp >
constexpr size_t std::rank_v< _Tp[]>
inlineconstexpr

Definition at line 3276 of file type_traits.

◆ rank_v< _Tp[_Size]>

template<typename _Tp , size_t _Size>
constexpr size_t std::rank_v< _Tp[_Size]>
inlineconstexpr

Definition at line 3274 of file type_traits.