|
| template<bool Value> |
| using | bool_constant = integral_constant<bool, Value> |
| | 布尔常量包装器
|
|
using | true_type = bool_constant<true> |
| | 表示true的类型
|
|
using | false_type = bool_constant<false> |
| | 表示false的类型
|
| template<uint32_t Value> |
| using | uint32_constant = integral_constant<uint32_t, Value> |
| | 32位无符号整数常量包装器
|
| template<uint64_t Value> |
| using | uint64_constant = integral_constant<uint64_t, Value> |
| | 64位无符号整数常量包装器
|
| template<typename... Types> |
| using | void_t = void |
| | 将任意类型映射为void
|
|
template<bool Test, typename T = void> |
| using | enable_if_t = typename enable_if<Test, T>::type |
| | enable_if的便捷别名
|
|
template<bool Test, typename T1, typename T2> |
| using | conditional_t = typename conditional<Test, T1, T2>::type |
| | conditional的便捷别名
|
|
template<typename T> |
| using | type_identity_t = typename type_identity<T>::type |
| | type_identity的便捷别名
|
|
template<typename T> |
| using | remove_const_t = typename remove_const<T>::type |
| | remove_const的便捷别名
|
|
template<typename T> |
| using | remove_volatile_t = typename remove_volatile<T>::type |
| | remove_volatile的便捷别名
|
|
template<typename T> |
| using | remove_cv_t = typename remove_cv<T>::type |
| | remove_cv的便捷别名
|
| template<typename From, typename To> |
| using | copy_cv_t = typename remove_cv<From>::template bind_cv_t<To> |
| | 复制cv限定符
|
|
template<typename T> |
| using | remove_reference_t = typename remove_reference<T>::type |
| | remove_reference的便捷别名
|
| template<typename From, typename To> |
| using | copy_ref_t = typename remove_reference<From>::template bind_ref_t<To> |
| | 复制引用限定符
|
| template<typename From, typename To> |
| using | copy_cvref_t = copy_ref_t<From, copy_cv_t<From, To>> |
| | 同时复制cv和引用限定符
|
|
template<typename T> |
| using | remove_cvref_t = typename remove_cvref<T>::type |
| | remove_cvref的便捷别名
|
|
template<typename T> |
| using | remove_extent_t = typename remove_extent<T>::type |
| | remove_extent的便捷别名
|
|
template<typename T> |
| using | remove_all_extents_t = typename remove_all_extents<T>::type |
| | remove_all_extents的便捷别名
|
|
template<typename T> |
| using | remove_pointer_t = typename remove_pointer<T>::type |
| | remove_pointer的便捷别名
|
| template<typename From, typename To> |
| using | copy_pointer_t = typename remove_pointer<From>::template bind_pointer_t<To> |
| | 复制指针限定符
|
|
template<typename T> |
| using | remove_function_qualifiers_t = typename remove_function_qualifiers<T>::type |
| | remove_function_qualifiers的便捷别名
|
|
template<typename T> |
| using | package_t = typename package<T>::type |
| | package的便捷别名
|
|
template<typename T> |
| using | unpackage_t = typename unpackage<T>::type |
| | unpackage的便捷别名
|
|
template<typename T> |
| using | unpack_remove_cvref_t = unpackage_t<remove_cvref_t<T>> |
| | 同时解包并移除cv和引用限定符
|
|
template<typename T> |
| using | add_const_t = typename add_const<T>::type |
| | add_const的便捷别名
|
|
template<typename T> |
| using | add_volatile_t = typename add_volatile<T>::type |
| | add_volatile的便捷别名
|
|
template<typename T> |
| using | add_cv_t = typename add_cv<T>::type |
| | add_cv的类型别名
|
|
template<typename T> |
| using | add_lvalue_reference_t = typename add_reference<T>::lvalue |
| | add_lvalue_reference的便捷别名
|
|
template<typename T> |
| using | add_rvalue_reference_t = typename add_reference<T>::rvalue |
| | add_rvalue_reference的便捷别名
|
|
template<typename T> |
| using | add_pointer_t = typename add_pointer<T>::type |
| | add_pointer的便捷别名
|
|
template<typename Tmp> |
| using | get_first_temp_para_t = typename get_first_temp_para<Tmp>::type |
| | get_first_temp_para的便捷别名
|
|
template<typename... Types> |
| using | get_first_para_t = typename get_first_para<Types...>::type |
| | get_first_para的便捷别名
|
|
template<typename T> |
| using | get_ptr_difference_t = typename get_ptr_difference<T>::type |
| | get_ptr_difference的便捷别名
|
|
template<typename T, typename U> |
| using | replace_first_para_t = typename replace_first_para<T, U>::type |
| | replace_first_para的便捷别名
|
|
template<typename T, typename U> |
| using | get_rebind_type_t = typename get_rebind_type<T, U>::type |
| | get_rebind_type的便捷别名
|
|
template<typename T> |
| using | underlying_type_t = typename underlying_type<T>::type |
| | underlying_type的便捷别名
|
| template<typename ToElement, typename FromElement> |
| using | is_array_convertible = is_convertible<FromElement (*)[], ToElement (*)[]> |
| | 判断数组元素类型FromElement是否可以转换为ToElement
|
|
template<typename T> |
| using | make_signed_t = typename make_signed<T>::type |
| | make_signed的便捷别名
|
|
template<typename T> |
| using | make_unsigned_t = typename make_unsigned<T>::type |
| | make_unsigned的便捷别名
|
|
template<size_t Size, bool IsSigned = true> |
| using | make_integer_t = typename make_integer<Size, IsSigned>::type |
| | make_integer的便捷别名
|
|
template<size_t Len, size_t Align = alignof(_NEFORCE max_align_t)> |
| using | aligned_storage_t = typename aligned_storage<Len, Align>::type |
| | aligned_storage的便捷别名
|
|
template<size_t Len, typename... Types> |
| using | aligned_union_t = typename aligned_union<Len, Types...>::type |
| | aligned_union的便捷别名
|
|
template<typename T> |
| using | decay_t = typename decay<T>::type |
| | decay的便捷别名
|
| template<typename Default, template< typename... > class Op, typename... Args> |
| using | detected_or = inner::__detector<Default, void, Op, Args...> |
| | 检测Op<Args...>是否有效,如果无效则使用Default类型
|
|
template<typename Default, template< typename... > class Op, typename... Args> |
| using | detected_or_t = typename detected_or<Default, Op, Args...>::type |
| | detected_or的便捷别名,返回检测到的类型或默认类型
|
| template<typename T1, typename T2> |
| using | common_ternary_operator_t = decltype(true ? _NEFORCE declval<T1>() : _NEFORCE declval<T2>()) |
| | 三目运算符的公共类型推导
|
|
template<typename... Types> |
| using | common_type_t = typename common_type<Types...>::type |
| | common_type的便捷别名
|
|
template<typename... Types> |
| using | common_reference_t = typename common_reference<Types...>::type |
| | common_reference的便捷别名
|
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | negation_v = negation<T>::value |
| | negation的便捷变量模板
|
|
template<typename T1, typename T2> |
| NEFORCE_INLINE17 constexpr bool | is_same_v = is_same<T1, T2>::value |
| | is_same的便捷变量模板
|
|
template<typename T, typename... Types> |
| NEFORCE_INLINE17 constexpr bool | is_any_of_v = is_any_of<T, Types...>::value |
| | is_any_of的便捷变量模板
|
|
template<typename... Args> |
| NEFORCE_INLINE17 constexpr bool | disjunction_v = disjunction<Args...>::value |
| | disjunction的便捷变量模板
|
|
template<typename... Args> |
| NEFORCE_INLINE17 constexpr bool | conjunction_v = conjunction<Args...>::value |
| | conjunction的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_void_v = is_void<T>::value |
| | is_void的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_packaged_v = is_packaged<T>::value |
| | is_packaged的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_unpackaged_v = is_unpackaged<T>::value |
| | is_unpackaged的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_character_v = is_character<T>::value |
| | is_character的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_boolean_v = is_boolean<T>::value |
| | is_boolean的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_standard_integral_v = is_standard_integral<T>::value |
| | is_standard_integral的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_integral_v = is_integral<T>::value |
| | is_integral的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_floating_point_v = is_floating_point<T>::value |
| | is_floating_point的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_arithmetic_v = is_arithmetic<T>::value |
| | is_arithmetic的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_signed_v = is_signed<T>::value |
| | is_signed的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_unsigned_v = is_unsigned<T>::value |
| | is_unsigned的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr size_t | rank_v = rank<T>::value |
| | rank的便捷变量模板
|
|
template<typename T, uint32_t Idx = 0> |
| NEFORCE_INLINE17 constexpr size_t | extent_v = extent<T, Idx>::value |
| | extent的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_bounded_array_v = is_bounded_array<T>::value |
| | is_bounded_array的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_unbounded_array_v = is_unbounded_array<T>::value |
| | is_unbounded_array的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_array_v = is_array<T>::value |
| | is_array的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_lvalue_reference_v = is_lvalue_reference<T>::value |
| | is_lvalue_reference的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_rvalue_reference_v = is_rvalue_reference<T>::value |
| | is_rvalue_reference的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_reference_v = is_reference<T>::value |
| | is_reference的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_null_pointer_v = is_null_pointer<T>::value |
| | is_null_pointer的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_pointer_v = is_pointer<T>::value |
| | is_pointer的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_enum_v = is_enum<T>::value |
| | is_enum的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_integral_like_v = is_integral_like<T>::value |
| | is_integral_like的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_union_v = is_union<T>::value |
| | is_union的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_class_v = is_class<T>::value |
| | is_class的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_fundamental_v = is_fundamental<T>::value |
| | is_fundamental的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_compound_v = is_compound<T>::value |
| | is_compound的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_const_v = is_const<T>::value |
| | is_const的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_volatile_v = is_volatile<T>::value |
| | is_volatile的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_function_v = is_function<T>::value |
| | is_function的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_allocable_v = is_allocable<T>::value |
| | is_allocable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_object_v = is_object<T>::value |
| | is_object的便捷变量模板
|
|
template<typename T> |
| constexpr bool | is_cstring_v = is_cstring<T>::value |
| | is_cstring的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_member_function_pointer_v = is_member_function_pointer<T>::value |
| | is_member_function_pointer的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_member_object_pointer_v = is_member_object_pointer<remove_cv_t<T>>::value |
| | is_member_object_pointer的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_member_pointer_v = is_member_pointer<T>::value |
| | is_member_pointer的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_scalar_v = is_scalar<T>::value |
| | is_scalar的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_empty_v = is_empty<T>::value |
| | is_empty的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_polymorphic_v = is_polymorphic<T>::value |
| | is_polymorphic的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_abstract_v = is_abstract<T>::value |
| | is_abstract的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_final_v = is_final<T>::value |
| | is_final的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_standard_layout_v = is_standard_layout<T>::value |
| | is_standard_layout的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_pod_v = is_pod<T>::value |
| | is_pod的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | has_unique_object_representations_v = has_unique_object_representations<T>::value |
| | has_unique_object_representations的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_aggregate_v = is_aggregate<T>::value |
| | is_aggregate的便捷变量模板
|
|
template<typename Base, typename Derived> |
| NEFORCE_INLINE17 constexpr bool | is_base_of_v = is_base_of<Base, Derived>::value |
| | is_base_of的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_trivial_v = is_trivial<T>::value |
| | is_trivial的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_trivially_copyable_v = is_trivially_copyable<T>::value |
| | is_trivially_copyable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | has_virtual_destructor_v = has_virtual_destructor<T>::value |
| | has_virtual_destructor的便捷变量模板
|
|
template<typename T, typename... Args> |
| NEFORCE_INLINE17 constexpr bool | is_constructible_v = is_constructible<T, Args...>::value |
| | is_constructible的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_copy_constructible_v = is_copy_constructible<T>::value |
| | is_copy_constructible的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_default_constructible_v = is_default_constructible<T>::value |
| | is_default_constructible的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_implicitly_default_constructible_v = is_implicitly_default_constructible<T>::value |
| | is_implicitly_default_constructible的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_move_constructible_v = is_move_constructible<T>::value |
| | is_move_constructible的便捷变量模板
|
|
template<typename To, typename From> |
| NEFORCE_INLINE17 constexpr bool | is_assignable_v = is_assignable<To, From>::value |
| | is_assignable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_copy_assignable_v = is_copy_assignable<T>::value |
| | is_copy_assignable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_move_assignable_v = is_move_assignable<T>::value |
| | is_move_assignable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_destructible_v = is_destructible<T>::value |
| | is_destructible的便捷变量模板
|
|
template<typename T, typename... Args> |
| NEFORCE_INLINE17 constexpr bool | is_trivially_constructible_v = is_trivially_constructible<T, Args...>::value |
| | is_trivially_constructible的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_trivially_copy_constructible_v = is_trivially_copy_constructible<T>::value |
| | is_trivially_copy_constructible的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_trivially_default_constructible_v = is_trivially_default_constructible<T>::value |
| | is_trivially_default_constructible的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_trivially_move_constructible_v = is_trivially_move_constructible<T>::value |
| | is_trivially_move_constructible的便捷变量模板
|
|
template<typename To, typename From> |
| NEFORCE_INLINE17 constexpr bool | is_trivially_assignable_v = is_trivially_assignable<To, From>::value |
| | is_trivially_assignable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_trivially_copy_assignable_v = is_trivially_copy_assignable<T>::value |
| | is_trivially_copy_assignable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_trivially_move_assignable_v = is_trivially_move_assignable<T>::value |
| | is_trivially_move_assignable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_trivially_destructible_v = is_trivially_destructible<T>::value |
| | is_trivially_destructible的便捷变量模板
|
|
template<typename T, typename... Args> |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_constructible_v = is_nothrow_constructible<T, Args...>::value |
| | is_nothrow_constructible的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_copy_constructible_v = is_nothrow_copy_constructible<T>::value |
| | is_nothrow_copy_constructible的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_default_constructible_v = is_nothrow_default_constructible<T>::value |
| | is_nothrow_default_constructible的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_move_constructible_v = is_nothrow_move_constructible<T>::value |
| | is_nothrow_move_constructible的便捷变量模板
|
|
template<typename To, typename From> |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_assignable_v = is_nothrow_assignable<To, From>::value |
| | is_nothrow_assignable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_copy_assignable_v = is_nothrow_copy_assignable<T>::value |
| | is_nothrow_copy_assignable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_move_assignable_v = is_nothrow_move_assignable<T>::value |
| | is_nothrow_move_assignable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_destructible_v = is_nothrow_destructible<T>::value |
| | is_nothrow_destructible的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_location_invariant_v = is_location_invariant<T>::value |
| | is_location_invariant的便捷变量模板
|
|
template<typename From, typename To> |
| NEFORCE_INLINE17 constexpr bool | is_convertible_v = is_convertible<From, To>::value |
| | is_convertible的便捷变量模板
|
|
template<typename ToElement, typename FromElement> |
| NEFORCE_INLINE17 constexpr bool | is_array_convertible_v = is_array_convertible<ToElement, FromElement>::value |
| | is_array_convertible的便捷变量模板
|
|
template<typename From, typename To> |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_convertible_v = is_nothrow_convertible<From, To>::value |
| | is_nothrow_convertible的便捷变量模板
|
|
template<typename Iterator, typename Ptr> |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_arrow_v = is_nothrow_arrow<Iterator, Ptr>::value |
| | is_nothrow_arrow的便捷变量模板
|
|
template<typename T> |
| constexpr size_t | alignment_of_v = alignment_of<T>::value |
| | alignment_of的便捷变量模板
|
|
template<size_t Len, typename... Types> |
| constexpr size_t | aligned_union_v = aligned_union<Len, Types...>::align_value |
| | 获取aligned_union的对齐要求值
|
|
template<typename T, template< typename... > class Template> |
| NEFORCE_INLINE17 constexpr bool | is_specialization_v = is_specialization<T, Template>::value |
| | is_specialization的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_swappable_v = is_swappable<T>::value |
| | is_swappable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_nothrow_swappable_v = is_nothrow_swappable<T>::value |
| | is_nothrow_swappable的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_trivially_swappable_v = is_trivially_swappable<T>::value |
| | is_trivially_swappable的便捷变量模板
|
|
template<typename Alloc> |
| NEFORCE_INLINE17 constexpr bool | is_allocator_v = is_allocator<Alloc>::value |
| | is_allocator的便捷变量模板
|
|
template<typename Iterator> |
| NEFORCE_INLINE17 constexpr bool | is_incrementible_v = is_incrementible<Iterator>::value |
| | iis_incrementible的便捷变量模板
|
|
template<typename Iterator> |
| NEFORCE_INLINE17 constexpr bool | is_decrementible_v = is_decrementible<Iterator>::value |
| | is_decrementible的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | is_iterable_v = is_iterable<T>::value |
| | is_iterable的便捷变量模板
|
|
template<typename Map> |
| NEFORCE_INLINE17 constexpr bool | is_maplike_v = is_maplike<Map>::value |
| | is_maplike的便捷变量模板
|
|
template<typename Alloc, typename T, typename... Args> |
| NEFORCE_INLINE17 constexpr bool | has_construct_v = has_construct<Alloc, T, Args...>::value |
| | has_construct的便捷变量模板
|
|
template<typename T> |
| NEFORCE_INLINE17 constexpr bool | has_base_v = has_base<T>::value |
| | has_base的便捷变量模板
|