|
template<typename Type , typename ReturnType = void> |
using | enable_if_pair_t = std::enable_if_t< is_pair_type_v< Type >, ReturnType > |
|
template<typename Type , typename ReturnType = void> |
using | enable_if_pair_of_variant_t = std::enable_if_t< is_pair_of_variant_type_v< Type >, ReturnType > |
|
template<typename Type , typename ReturnType = void> |
using | enable_if_variant_t = std::enable_if_t< is_variant_type_v< Type >, ReturnType > |
|
template<auto N, typename TypeAny > |
using | any_element_t = select_nth_type_t< N, typename TypeAny::element_types_t > |
|
using | big_integer_t = long long |
|
using | big_unsigned_t = unsigned long long |
|
template<auto Id, auto... Ids> |
using | index_t = std::index_sequence<(std::size_t) Id,(std::size_t) Ids... > |
|
template<auto N> |
using | make_index_t = std::make_index_sequence<(std::size_t) N > |
|
template<typename ... Types> |
using | index_for = std::make_index_sequence< sizeof...(Types)> |
|
template<typename Type > |
using | remove_cvref_t = remove_cv_ref_t< Type > |
|
template<typename Type , auto Tag> |
using | non_class_wrapper_t = hidden::non_class_wrapper_t< Type, Tag > |
|
template<typename Type , auto Size> |
using | create_tuple_t = decltype(types::convert_to_tuple(std::array< Type, Size >{})) |
|
template<typename T > |
using | to_recursive_type_list_t = hidden::to_recursive_type_list_t< remove_cv_ref_t< T > > |
|
template<typename... Types> |
using | remove_cv_ref_type_list_t = type_list_t< tpf::remove_cv_ref_t< Types >... > |
| Create type_list_t by removing const, volatile, reference. More...
|
|
template<typename... Types> |
using | decay_remove_cv_ref_type_list_t = type_list_t< tpf::decay_remove_cv_ref_t< Types >... > |
| Create type_list_t by decaying and removing const, volatile, reference. More...
|
|
template<typename... Types> |
using | decay_remove_ref_type_list_t = type_list_t< tpf::decay_remove_ref_t< Types >... > |
| Create type_list_t by decaying and removing reference. More...
|
|
template<typename TupleType > |
using | tuple_to_type_list_t = hidden::tuple_to_type_list_t< remove_cvref_t< TupleType > > |
|
template<typename TypeList > |
using | type_list_to_tuple_t = hidden::type_list_to_tuple_t< remove_cvref_t< TypeList > > |
|
template<typename VarType > |
using | variant_to_type_list_t = hidden::variant_to_type_list_t< remove_cvref_t< VarType > > |
|
template<typename... Types> |
using | tuple_of_vectors_t = typename hidden::st_type_list_to_tuple_of_vectors< Types... >::type |
|
template<std::size_t N> |
using | index_tuple_vector_t = typename hidden::st_index_tuple_vector< std::make_index_sequence< N > >::type |
|
template<typename Type > |
using | map_or_unordered_map_pair_t = hidden::map_or_unordered_map_pair_t< Type > |
|
using | no_throw_t = no_type_t |
|
using | invalid_t = no_type_t |
|
template<typename Type > |
using | return_type_t = hidden::return_type_t< Type > |
|
template<typename Type > |
using | std_array_element_t = typename hidden::st_std_array_element< remove_cv_ref_t< Type > >::type |
|
template<auto Index> |
using | indexer_t = indexer_type< remove_cvref_t< decltype(Index)>, Index > |
|
template<auto RowValue, auto ColumnValue> |
using | indexer_2d_t = indexer_2d_type< remove_cvref_t< decltype(RowValue)>, RowValue, ColumnValue > |
|
template<auto HeightValue, auto RowValue, auto ColumnValue> |
using | indexer_3d_t = indexer_3d_type< remove_cvref_t< decltype(RowValue)>, HeightValue, RowValue, ColumnValue > |
|
template<auto... Indices> |
using | typed_sequence_t = std::integer_sequence< std::common_type_t< remove_cvref_t< decltype(Indices)>... >, Indices... > |
|
template<auto Size> |
using | make_typed_sequence_t = std::make_integer_sequence< remove_cvref_t< decltype(Size)>, Size > |
|
template<typename SequenceType > |
using | reverse_sequence_t = hidden::reverse_sequence_t< remove_cvref_t< SequenceType > > |
|
template<typename SequenceType > |
using | sequence_element_t = hidden::sequence_element_t< remove_cvref_t< SequenceType > > |
|
template<bool StackOrder, typename SequenceType > |
using | sequence_info_t = typename hidden::sequence_info_t< StackOrder, remove_cvref_t< SequenceType > > |
|
template<bool SequenceInOrder, auto... RangeValues> |
using | make_sequence_t = typename hidden::st_create_workhorse_range< SequenceInOrder, RangeValues... >::type |
|
template<typename Type , typename ReturnType > |
using | enable_if_iterator_type_t = hidden::enable_if_iterator_type_t< remove_cv_ref_t< Type >, ReturnType > |
|
using | character_list_t = type_list_t< char, unsigned char, wchar_t > |
| Type list of character types. More...
|
|
using | integer_list_t = type_list_t< short, unsigned short, int, unsigned int, long, unsigned long, long long, unsigned long long > |
| Type list of integers EXCLUSING character type and boolean type. More...
|
|
using | signed_integer_list_t = type_list_t< short, int, long, long long > |
| Signed integers EXCLUDING char and boolean. More...
|
|
using | unsigned_integer_list_t = type_list_t< unsigned short, unsigned int, unsigned long, unsigned long long > |
| Unsigned integers EXCLUDING unsigned char and boolean. More...
|
|
using | integral_list_t = type_list_t< char, unsigned char, short, unsigned short, int, unsigned int, long, unsigned long, long long, unsigned long long > |
| Type list of integral type INCLUDING character type, but EXCLUDING boolean type. More...
|
|
using | unsigned_integral_list_t = type_list_t< unsigned char, unsigned short, unsigned int, unsigned long, unsigned long long > |
| Type list of unsigned integral type INCLUDING character type, but EXCLUDING boolean type. More...
|
|
using | signed_integral_list_t = type_list_t< char, short, int, long int, long long int > |
| Type list of signed integral type INCLUDING character type, but EXCLUDING boolean type. More...
|
|
using | real_number_list_t = type_list_t< float, double, long double > |
| Type list of real numbers (floating-point numbers). More...
|
|
using | numerical_number_list_t = type_list_t< char, unsigned char, short, unsigned short, int, unsigned int, long, unsigned long, long long, unsigned long long, float, double, long double > |
| All numbers mathematical operations. More...
|
|
using | arithmetic_number_list_t = type_list_t< char, short, int, long, long long, float, double, long double > |
| Arithmetic numbers for mathematical analysis. More...
|
|
using | floating_point_list_t = real_number_list_t |
| The same to real_number_list_t, real numbers. More...
|
|
template<typename Type > |
using | template_parameter_type_list_t = hidden::template_parameter_type_list_t< Type > |
|
template<typename Type , typename... Types> |
using | flat_type_list_t = tpf::types::type_list_t< decay_remove_cv_ref_t< Type >, decay_remove_cv_ref_t< Types >... > |
|
template<typename ReturnType , typename Type , typename... Types> |
using | enable_if_same_t = std::enable_if_t< is_same_v< Type, Types... >, ReturnType > |
|
template<typename ReturnType , typename... Types> |
using | enable_if_all_the_same_t = std::enable_if_t< is_same_v< Types... >, ReturnType > |
|
template<typename ReturnType , typename Type , typename... Types> |
using | enable_if_same_flat_t = std::enable_if_t< is_same_flat_v< Type, Types... >, ReturnType > |
|
template<typename ReturnType , typename... Types> |
using | enable_if_all_the_same_flat_t = std::enable_if_t< is_same_flat_v< Types... >, ReturnType > |
|
template<typename Type , typename... Types> |
using | void_if_same_t = std::enable_if_t< is_same_v< Type, Types... > > |
|
template<typename... Types> |
using | void_if_all_the_same_t = std::enable_if_t< is_same_v< Types... > > |
|
template<typename Type , typename... Types> |
using | void_if_same_flat_t = std::enable_if_t< is_same_flat_v< Type, Types... > > |
|
template<typename... Types> |
using | void_if_all_the_same_flat_t = std::enable_if_t< is_same_flat_v< Types... > > |
|
template<typename Type , typename ReturnType = Type> |
using | enable_if_integral_t = hidden::enable_if_integral_t< Type, ReturnType > |
|
template<typename Type , typename ReturnType = Type> |
using | enable_if_signed_integral_t = hidden::enable_if_signed_integral_t< Type, ReturnType > |
|
template<typename Type , typename ReturnType = Type> |
using | enable_if_unsigned_integral_t = hidden::enable_if_unsigned_integral_t< Type, ReturnType > |
|
template<typename Type , typename ReturnType = Type> |
using | enable_if_integer_t = hidden::enable_if_integer_t< Type, ReturnType > |
|
template<typename Type , typename ReturnType = Type> |
using | enable_if_not_integer_t = hidden::enable_if_not_integer_t< Type, ReturnType > |
|
template<typename Type , typename ReturnType = Type> |
using | enable_if_signed_integer_t = hidden::enable_if_signed_integer_t< Type, ReturnType > |
|
template<typename Type , typename ReturnType = Type> |
using | enable_if_unsigned_integer_t = hidden::enable_if_unsigned_integer_t< Type, ReturnType > |
|
template<typename Type , typename ReturnType = Type> |
using | enable_if_real_number_t = hidden::enable_if_real_number_t< Type, ReturnType > |
|
template<typename Type , typename ReturnType = Type> |
using | enable_if_numerical_number_t = hidden::enable_if_numerical_number_t< Type, ReturnType > |
|
template<typename Type > |
using | make_unsigned_t = hidden::make_unsigned_t< Type > |
|
template<typename Type > |
using | make_signed_t = hidden::make_signed_t< Type > |
|
template<typename Type > |
using | make_unsigned_integral_t = hidden::make_unsigned_integral_t< Type > |
|
template<typename Type > |
using | make_signed_integral_t = hidden::make_signed_integral_t< Type > |
|
template<typename... Types> |
using | common_type_t = hidden::common_type_t< Types... > |
|
template<typename... Types> |
using | make_common_unsigned_t = make_unsigned_t< common_type_t< Types... > > |
|
template<typename... Types> |
using | common_unsigned_t = make_unsigned_t< common_type_t< Types... > > |
|
template<typename... Types> |
using | make_common_signed_t = make_signed_t< common_type_t< Types... > > |
|
template<typename... Types> |
using | common_signed_t = make_signed_t< common_type_t< Types... > > |
|
template<typename ReturnType , typename... ArgTypes> |
using | enable_if_common_exisits_t = std::enable_if_t< common_type_v< remove_cvref_t< ArgTypes >... >, ReturnType > |
|
template<typename... ArgTypes> |
using | void_if_common_exisits_t = std::enable_if_t< common_type_v< remove_cvref_t< ArgTypes >... > > |
|
template<typename FuncType , typename TupleType > |
using | apply_return_t = decltype(hidden::fn_apply(std::declval< FuncType >(), std::declval< TupleType >())) |
|
template<typename FuncType , typename... TupleTypes> |
using | common_apply_t = std::common_type_t< apply_return_t< FuncType, TupleTypes >... > |
|
template<typename ReturnType , typename FuncType , typename... TupleTypes> |
using | enable_if_all_apply_t = std::enable_if_t< all_apply_v< FuncType, TupleTypes... >, ReturnType > |
|
template<typename FuncType , typename... TupleTypes> |
using | apply_return_tuple_t = std::tuple< apply_return_t< FuncType, TupleTypes > ... > |
|
template<typename FuncType , typename... TupleTypes> |
using | apply_return_array_t = std::array< std::common_type_t< apply_return_t< FuncType, TupleTypes >... >, sizeof...(TupleTypes)> |
|
template<typename FuncType , typename... TupleTypes> |
using | apply_return_vector_t = std::vector< std::common_type_t< apply_return_t< FuncType, TupleTypes >... > > |
|
template<typename FuncType , typename... TupleTypes> |
using | void_if_all_apply_t = enable_if_all_apply_t< void, FuncType, TupleTypes... > |
|
template<typename FuncType , typename... TupleTypes> |
using | tuple_if_all_apply_t = enable_if_all_apply_t< apply_return_tuple_t< FuncType, TupleTypes... >, FuncType, TupleTypes... > |
|
template<typename FuncType , typename... TupleTypes> |
using | array_if_all_apply_t = enable_if_all_apply_t< apply_return_array_t< FuncType, TupleTypes... >, FuncType, TupleTypes... > |
|
template<typename FuncType , typename... TupleTypes> |
using | vector_if_all_apply_t = enable_if_all_apply_t< apply_return_vector_t< FuncType, TupleTypes... >, FuncType, TupleTypes... > |
|
template<typename FuncType , typename... TupleTypes> |
using | common_type_if_all_apply_t = std::enable_if_t< common_apply_v< FuncType, TupleTypes... >, std::common_type_t< apply_return_t< FuncType, TupleTypes >... > > |
|
template<typename FuncType , typename... ArgTypes> |
using | function_return_type_t = hidden::function_return_type_t< FuncType, ArgTypes... > |
|
template<typename T , typename... Types> |
using | enable_pairwise_common_type_t = std::enable_if_t< pairwise_common_type_v< T, Types... > > |
|
template<typename T , typename S > |
using | tuple_common_type_t = typename hidden::st_tuple_common_type< remove_cvref_t< T >, remove_cvref_t< S > >::type |
|
template<typename T , typename S > |
using | tuple_operation_valid_t = std::enable_if_t< tuple_common_type_v< T, S >, tuple_common_type_t< T, S > > |
|
template<typename Type , typename ReturnType = void> |
using | enable_if_container_type_t = hidden::enable_if_container_type_t< Type, ReturnType > |
|
template<typename... Types> |
using | select_first_type_t = hidden::select_first_type_t< Types... > |
|
template<typename... Types> |
using | first_type_t = hidden::first_type_t< Types... > |
|
template<typename... Types> |
using | front_type_t = hidden::front_type_t< Types... > |
|
template<typename... Types> |
using | select_last_type_t = hidden::select_last_type_t< Types... > |
|
template<typename... Types> |
using | last_type_t = hidden::last_type_t< Types... > |
|
template<typename... Types> |
using | back_type_t = hidden::back_type_t< Types... > |
|
template<auto SelectIndex, typename... Types> |
using | select_nth_type_t = hidden::select_nth_type_t< SelectIndex, Types... > |
|
template<auto SelectIndex, typename... Types> |
using | nth_type_t = hidden::nth_type_t< SelectIndex, Types... > |
|
template<typename Type > |
using | first_parameter_type_t = hidden::first_parameter_type_t< Type > |
|
template<typename Type > |
using | last_parameter_type_t = hidden::last_type_t< Type > |
|
template<auto SelectIndex, typename Type > |
using | nth_parameter_type_t = hidden::nth_type_t< SelectIndex, Type > |
|
template<typename ArgType , typename... Types> |
using | push_front_type_t = hidden::push_front_type_t< ArgType, Types... > |
|
template<typename ArgType , typename... Types> |
using | push_back_type_t = hidden::push_back_type_t< ArgType, Types... > |
|
template<typename... Types> |
using | pop_front_type_t = hidden::pop_front_type_t< Types... > |
|
template<typename... Types> |
using | pop_back_type_t = hidden::pop_back_type_t< Types... > |
|
template<size_t FirstN, typename... Types> |
using | first_n_types_t = hidden::first_n_types_t< FirstN, Types... > |
|
template<size_t FirstN, typename... Types> |
using | select_first_n_types_t = hidden::select_first_n_types_t< FirstN, Types... > |
|
template<size_t LastN, typename... Types> |
using | last_n_types_t = hidden::last_n_types_t< LastN, Types... > |
|
template<size_t LastN, typename... Types> |
using | select_last_n_types_t = hidden::select_last_n_types_t< LastN, Types... > |
|
template<typename... Types> |
using | unique_types_t = hidden::unique_types_t< Types... > |
|
template<typename Type , typename... Types> |
using | to_variant_t = hidden::to_variant_t< Type, Types... > |
|
template<typename TupleType > |
using | tuple_to_variant_t = hidden::to_variant_t< TupleType > |
|
template<template< typename, typename... > class Container, typename TupleType > |
using | tuple_to_container_of_variants_t = Container< types::to_variant_t< remove_cvref_t< TupleType > > > |
|
template<typename... Types> |
using | to_tuple_t = hidden::to_tuple_t< Types... > |
|
template<typename VarType > |
using | variant_to_tuple_t = hidden::to_tuple_t< VarType > |
|
template<typename ArgType , typename RightList > |
using | prepend_type_t = hidden::prepend_type_t< ArgType, RightList > |
|
template<typename ArgType , typename RightList > |
using | append_type_t = hidden::append_type_t< ArgType, RightList > |
|
template<typename LeftList , typename RightList > |
using | union_type_t = hidden::union_type_t< unique_types_t< LeftList >, unique_types_t< RightList > > |
|
template<typename LeftList , typename RightList > |
using | intersection_type_t = hidden::intersection_type_t< unique_types_t< LeftList >, unique_types_t< RightList > > |
|
template<typename ArgType , typename... Types> |
using | remove_type_t = hidden::remove_type_t< ArgType, Types... > |
|
template<typename LeftList , typename RightList > |
using | difference_type_t = hidden::difference_type_t< LeftList, RightList > |
|
template<typename NewType , typename OldType , typename TypeList > |
using | replace_type_t = hidden::replace_type_t< NewType, OldType, TypeList > |
|
template<typename TupleType > |
using | tuple_common_element_t = hidden::tuple_common_element_t< remove_cvref_t< TupleType > > |
|
template<typename TupleType > |
using | tuple_to_std_array_t = hidden::tuple_to_std_array_t< remove_cvref_t< TupleType > > |
|
template<typename... Types> |
using | arg_to_type_list_t = typename hidden::st_arg_to_type_list< Types... >::type |
|
template<typename Heads , typename Tails > |
using | arg_list_t = typename hidden::st_build_arg_types< Heads, Tails >::type |
|
template<typename CallbackType , typename... Types> |
using | callable_list_t = typename hidden::st_is_callable< CallbackType, type_list_t<>, type_list_t<>, Types... >::callables |
|
template<typename CallbackType , typename... Types> |
using | non_callable_list_t = typename hidden::st_is_callable< CallbackType, type_list_t<>, type_list_t<>, Types... >::non_callables |
|
template<typename... Types> |
using | concate_type_t = typename concate_type_st< Types... >::type |
|
template<typename TestType , typename TypeList , typename ReturnType = TestType> |
using | enable_if_in_list_t = hidden::enable_if_in_list_t< TestType, TypeList, ReturnType > |
|
template<typename TestTypeList , typename TypeList , typename ReturnType = void> |
using | enable_if_all_in_list_t = hidden::enable_if_all_in_list_t< TestTypeList, TypeList, ReturnType > |
|
template<typename Type1 , typename Type2 , typename common_t = common_type_t<Type1, Type2>, bool is_integral_type = is_integral_v<common_t>, typename result_type = std::conditional_t< is_integral_type, make_signed_t<common_t>, common_t>> |
using | signed_common_t = result_type |
|
template<typename Type1 , typename Type2 , typename common_t = common_type_t<Type1, Type2>, bool is_integral_type = is_integral_v<common_t>, typename result_type = std::conditional_t< is_integral_type, make_unsigned_t<common_t>, common_t>> |
using | unsigned_common_t = result_type |
|
template<template< typename, typename... > class ContainerType, typename... ElementTypes> |
using | container_of_variants_t = hidden::container_of_variants_t< ContainerType, ElementTypes... > |
|
template<typename... ElementTypes> |
using | vector_of_variants_t = hidden::vector_of_variants_t< ElementTypes... > |
|
template<typename... ElementTypes> |
using | deque_of_variants_t = hidden::deque_of_variants_t< ElementTypes... > |
|
template<typename... ElementTypes> |
using | list_of_variants_t = hidden::list_of_variants_t< ElementTypes... > |
|
template<typename... ElementTypes> |
using | set_of_variants_t = hidden::set_of_variants_t< ElementTypes... > |
|
template<typename... ElementTypes> |
using | multiset_of_variants_t = hidden::multiset_of_variants_t< ElementTypes... > |
|
template<typename... ElementTypes> |
using | unordered_set_of_variants_t = hidden::unordered_set_of_variants_t< ElementTypes... > |
|
template<typename... ElementTypes> |
using | unordered_multiset_of_variants_t = hidden::unordered_multiset_of_variants_t< ElementTypes... > |
|
template<typename KeyType , typename... ElementTypes> |
using | map_of_variants_t = hidden::map_of_variants_t< KeyType, ElementTypes... > |
|
template<typename KeyType , typename... ElementTypes> |
using | multimap_of_variants_t = hidden::multimap_of_variants_t< KeyType, ElementTypes... > |
|
template<typename KeyType , typename... ElementTypes> |
using | unordered_map_of_variants_t = hidden::unordered_map_of_variants_t< KeyType, ElementTypes... > |
|
template<typename KeyType , typename... ElementTypes> |
using | unordered_multimap_of_variants_t = hidden::unordered_multimap_of_variants_t< KeyType, ElementTypes... > |
|
template<typename Type , typename... Types> |
using | types_to_template_class_t = hidden::types_to_template_class_t< Type, Types... > |
|
template<template< typename... > class ClassTemplate, typename... Types> |
using | type_list_to_template_class_t = hidden::type_list_to_template_class_t< ClassTemplate, Types... > |
|
template<size_t SelectTypeIndex, typename TemplateClass , typename... Types> |
using | nth_type_to_template_class_t = hidden::nth_type_to_template_class_t< SelectTypeIndex, TemplateClass, Types... > |
|
template<size_t FirstN, typename TemplateClass , typename... Types> |
using | first_n_types_to_template_class_t = hidden::first_n_types_to_template_class_t< FirstN, TemplateClass, Types... > |
|
template<size_t FirstN, template< typename... > typename TemplateClass, typename... Types> |
using | first_n_types_list_to_template_class_t = hidden::first_n_types_list_to_template_class_t< FirstN, TemplateClass, Types... > |
|
template<template< typename, typename... > class ContainerType, typename... ElementTypes> |
using | container_of_tuples_t = hidden::container_of_tuples_t< ContainerType, ElementTypes... > |
|
template<typename... ElementTypes> |
using | vector_of_tuples_t = hidden::vector_of_tuples_t< ElementTypes... > |
|
template<typename... ElementTypes> |
using | deque_of_tuples_t = hidden::deque_of_tuples_t< ElementTypes... > |
|
template<typename... ElementTypes> |
using | list_of_tuples_t = hidden::list_of_tuples_t< ElementTypes... > |
|
template<typename... ElementTypes> |
using | set_of_tuples_t = hidden::set_of_tuples_t< ElementTypes... > |
|
template<typename KeyType , typename... ElementTypes> |
using | map_of_tuples_t = hidden::map_of_tuples_t< KeyType, ElementTypes... > |
|
template<typename KeyType , typename... ElementTypes> |
using | multimap_of_tuples_t = hidden::multimap_of_tuples_t< KeyType, ElementTypes... > |
|
template<typename KeyType , typename... ElementTypes> |
using | unordered_map_of_tuples_t = hidden::unordered_map_of_tuples_t< KeyType, ElementTypes... > |
|
template<typename KeyType , typename... ElementTypes> |
using | unordered_multimap_of_tuples_t = hidden::unordered_multimap_of_tuples_t< KeyType, ElementTypes... > |
|
|
template<typename VisitorType , typename VariantType > |
enable_if_variant_t< VariantType > | visit (VisitorType &&visitor, VariantType &&vt) |
|
template<typename VisitorType , typename PairType > |
enable_if_pair_of_variant_t< PairType > | visit (VisitorType &&visitor, PairType &&pair) |
|
template<typename... VisitorTypes> |
| overloaded (VisitorTypes...) -> overloaded< VisitorTypes... > |
|
template<typename... VisitorTypes> |
overloaded< remove_cv_ref_t< VisitorTypes >... > | make_overloads (VisitorTypes &&... visitors) |
|
template<typename VisitorType , typename VariantType > |
void | visit (VisitorType &&visitor, VariantType &&vt) |
|
template<typename VisitorType , typename PairType > |
enable_if_pair_t< PairType > | visit (VisitorType &&visitor, PairType &&pair) |
|
template<typename... VisitorTypes> |
overloaded< remove_cv_ref_t< VisitorTypes >... > | make_overloaded (VisitorTypes &&... visitors) |
|
template<typename... CallbackTypes> |
| any_visitors (CallbackTypes...) -> any_visitors< CallbackTypes... > |
|
template<typename Type , typename... Types> |
any< Type, Types... > | variant_to_any (const std::variant< Type, Types... > &var) |
|
template<typename Type , typename... Types> |
std::any | variant_to_std_any (const std::variant< Type, Types... > &var) |
|
template<typename... ElementTypes> |
std::string | current_type (const any< ElementTypes... > &a) |
|
template<typename Visitors , typename AnyType , typename... ArgTypes> |
void | visit_any (Visitors &&visitors, AnyType &&a, ArgTypes &&... args) |
|
template<typename CurrentType , typename AnyType , typename Handler , typename = std::enable_if<std::is_same_v<remove_cv_ref_t<AnyType>, std::any>>> |
void | if_any_type (AnyType &&a, Handler &&handler) |
|
template<std::size_t KeyIndex, typename Type , auto Index, auto... Indices> |
constexpr auto | get_nth_value (std::integer_sequence< Type, Index, Indices... >) noexcept |
|
template<typename Type > |
decltype(auto) | get_value (Type &&arg) |
|
template<class TargetType , class _Ty > |
constexpr std::enable_if_t< std::is_same_v< std::remove_reference_t< TargetType >, std::remove_reference_t< _Ty > >, _Ty && > | smart_forward (std::remove_reference_t< _Ty > &_Arg) noexcept |
|
template<class TargetType , class _Ty > |
constexpr std::enable_if_t< !std::is_same_v< std::remove_reference_t< TargetType >, std::remove_reference_t< _Ty > >, TargetType > | smart_forward (std::remove_reference_t< _Ty > &_Arg) noexcept |
|
template<class TargetType , class _Ty > |
constexpr std::enable_if_t< std::is_same_v< std::remove_reference_t< TargetType >, std::remove_reference_t< _Ty > >, _Ty && > | smart_forward (std::remove_reference_t< _Ty > &&_Arg) noexcept |
|
template<class TargetType , class _Ty > |
constexpr std::enable_if_t< !std::is_same_v< std::remove_reference_t< TargetType >, std::remove_reference_t< _Ty > >, TargetType > | smart_forward (std::remove_reference_t< _Ty > &&_Arg) noexcept |
|
template<class TargetType , class _Ty > |
constexpr std::enable_if_t< std::is_same_v< std::remove_reference_t< TargetType >, std::remove_reference_t< _Ty > >, std::remove_reference_t< _Ty > && > | smart_move (_Ty &&_Arg) noexcept |
|
template<class TargetType , class _Ty > |
constexpr std::enable_if_t< !std::is_same_v< std::remove_reference_t< TargetType >, std::remove_reference_t< _Ty > >, TargetType > | smart_move (_Ty &&_Arg) noexcept |
|
template<auto N, typename T , typename Deleter > |
auto & | cast_ref (std::unique_ptr< T[], Deleter > &uptr) noexcept |
|
template<auto N, typename T , typename Deleter > |
auto & | cast_ref (std::index_sequence< N >, std::unique_ptr< T[], Deleter > &uptr) noexcept |
|
template<auto N, typename T , typename Deleter > |
auto & | cast_ref (std::unique_ptr< T[], Deleter > const &uptr) noexcept |
|
template<auto N, typename T , typename Deleter > |
auto & | cast_ref (std::index_sequence< N >, std::unique_ptr< T[], Deleter > const &uptr) noexcept |
|
template<auto N1, auto N2, typename T , typename Deleter > |
auto & | cast_ref (std::unique_ptr< T[], Deleter > &uptr) noexcept |
|
template<auto N1, auto N2, typename T , typename Deleter > |
auto & | cast_ref (std::index_sequence< N1, N2 >, std::unique_ptr< T[], Deleter > &uptr) noexcept |
|
template<auto N1, auto N2, typename T , typename Deleter > |
auto & | cast_ref (std::unique_ptr< T[], Deleter > const &uptr) noexcept |
|
template<auto N1, auto N2, typename T , typename Deleter > |
auto & | cast_ref (std::index_sequence< N1, N2 >, std::unique_ptr< T[], Deleter > const &uptr) noexcept |
|
template<auto N1, auto N2, auto N3, typename T , typename Deleter > |
auto & | cast_ref (std::unique_ptr< T[], Deleter > &uptr) noexcept |
|
template<auto N1, auto N2, auto N3, typename T , typename Deleter > |
auto & | cast_ref (std::index_sequence< N1, N2, N3 >, std::unique_ptr< T[], Deleter > &uptr) noexcept |
|
template<auto N1, auto N2, auto N3, typename T , typename Deleter > |
auto & | cast_ref (std::unique_ptr< T[], Deleter > const &uptr) noexcept |
|
template<auto N1, auto N2, auto N3, typename T , typename Deleter > |
auto & | cast_ref (std::index_sequence< N1, N2, N3 >, std::unique_ptr< T[], Deleter > const &uptr) noexcept |
|
template<auto N1, auto N2, typename T , auto N, typename = std::enable_if_t<N1* N2 == N>> |
auto & | cast_ref (T(&array)[N]) noexcept |
|
template<auto N1, auto N2, typename T , auto N, typename = std::enable_if_t<N1* N2 == N>> |
auto & | cast_ref (std::index_sequence< N1, N2 >, T(&array)[N]) noexcept |
|
template<auto N1, auto N2, typename T , auto N = N1 * N2> |
auto & | cast_ref (T(&array)[N1][N2]) noexcept |
|
template<auto N1, auto N2, typename T , auto N = N1 * N2> |
auto & | cast_ref (std::index_sequence< N1, N2 >, T(&array)[N1][N2]) noexcept |
|
template<auto N1, auto N2, auto N3, typename T , auto N, typename = std::enable_if_t<N1* N2* N3 == N>> |
auto & | cast_ref (T(&array)[N]) noexcept |
|
template<auto N1, auto N2, auto N3, typename T , auto N, typename = std::enable_if_t<N1* N2* N3 == N>> |
auto & | cast_ref (std::index_sequence< N1, N2, N3 >, T(&array)[N]) noexcept |
|
template<auto N1, auto N2, auto N3, typename T , auto N = N1 * N2* N3> |
auto & | cast_ref (T(&array)[N1][N2][N3]) noexcept |
|
template<auto N1, auto N2, auto N3, typename T , auto N = N1 * N2* N3> |
auto & | cast_ref (std::index_sequence< N1, N2, N3 >, T(&array)[N1][N2][N3]) noexcept |
|
template<auto N, typename T , typename = std::enable_if_t<std::is_pointer_v<T>>> |
auto & | cast_ref (T array) noexcept |
|
template<auto N1, auto N2, typename T , typename = std::enable_if_t<std::is_pointer_v<T>>> |
auto & | cast_ref (T array) noexcept |
|
template<auto N1, auto N2, auto N3, typename T , typename = std::enable_if_t<std::is_pointer_v<T>>> |
auto & | cast_ref (T array) noexcept |
|
template<auto N, typename T , typename = std::enable_if_t<std::is_pointer_v<T>>> |
auto & | cast_ref (std::index_sequence< N >, T array) noexcept |
|
template<auto N1, auto N2, typename T , typename = std::enable_if_t<std::is_pointer_v<T>>> |
auto & | cast_ref (std::index_sequence< N1, N2 >, T array) noexcept |
|
template<auto N1, auto N2, auto N3, typename T , typename = std::enable_if_t<std::is_pointer_v<T>>> |
auto & | cast_ref (std::index_sequence< N1, N2, N3 >, T array) noexcept |
|
template<std::size_t N1, typename T , std::size_t N, typename = std::enable_if_t<N1 == N>> |
auto & | cast_ref (std::array< T, N > &array) noexcept |
|
template<std::size_t N1, typename T , std::size_t N, typename = std::enable_if_t<N1 == N>> |
auto & | cast_ref (std::array< T, N > const &array) noexcept |
|
template<std::size_t N1, std::size_t N2, typename T , std::size_t N, typename = std::enable_if_t< N1 * N2 == N>> |
auto & | cast_ref (std::array< T, N > &array) noexcept |
|
template<std::size_t N1, std::size_t N2, typename T , std::size_t N, typename = std::enable_if_t< N1 * N2 == N>> |
auto & | cast_ref (std::array< T, N > const &array) noexcept |
|
template<std::size_t N1, typename T , std::size_t N, typename = std::enable_if_t< N1 == N>> |
auto & | cast_ref (std::index_sequence< N1 >, std::array< T, N > &array) noexcept |
|
template<std::size_t N1, typename T , std::size_t N, typename = std::enable_if_t< N1 == N>> |
auto & | cast_ref (std::index_sequence< N1 >, std::array< T, N > const &array) noexcept |
|
template<std::size_t N1, std::size_t N2, typename T , std::size_t N, typename = std::enable_if_t< N1 * N2 == N>> |
auto & | cast_ref (std::index_sequence< N1, N2 >, std::array< T, N > &array) noexcept |
|
template<std::size_t N1, std::size_t N2, typename T , std::size_t N, typename = std::enable_if_t< N1 * N2 == N>> |
auto & | cast_ref (std::index_sequence< N1, N2 >, std::array< T, N > const &array) noexcept |
|
template<std::size_t N1, std::size_t N2, std::size_t N3, typename T , std::size_t N, typename = std::enable_if_t< N1 * N2 * N3 == N>> |
auto & | cast_ref (std::array< T, N > &array) noexcept |
|
template<std::size_t N1, std::size_t N2, std::size_t N3, typename T , std::size_t N, typename = std::enable_if_t< N1 * N2 * N3 == N>> |
auto & | cast_ref (std::array< T, N > const &array) noexcept |
|
template<std::size_t N1, std::size_t N2, std::size_t N3, typename T , std::size_t N, typename = std::enable_if_t< N1 * N2 * N3 == N>> |
auto & | cast_ref (std::index_sequence< N1, N2, N3 >, std::array< T, N > &array) noexcept |
|
template<std::size_t N1, std::size_t N2, std::size_t N3, typename T , std::size_t N, typename = std::enable_if_t< N1 * N2 * N3 == N>> |
auto & | cast_ref (std::index_sequence< N1, N2, N3 >, std::array< T, N > const &array) noexcept |
|
template<std::size_t N, typename T > |
auto & | cast_ref (std::vector< T > &vctr) noexcept |
|
template<std::size_t N, typename T > |
auto & | cast_ref (std::vector< T > const &vctr) noexcept |
|
template<std::size_t N, typename T > |
auto & | cast_ref (std::index_sequence< N >, std::vector< T > &vctr) noexcept |
|
template<std::size_t N, typename T > |
auto & | cast_ref (std::index_sequence< N >, std::vector< T > const &vctr) noexcept |
|
template<std::size_t N1, std::size_t N2, typename T > |
auto & | cast_ref (std::vector< T > &vctr) noexcept |
|
template<std::size_t N1, std::size_t N2, typename T > |
auto & | cast_ref (std::vector< T > const &vctr) noexcept |
|
template<std::size_t N1, std::size_t N2, typename T > |
auto & | cast_ref (std::index_sequence< N1, N2 >, std::vector< T > &vctr) noexcept |
|
template<std::size_t N1, std::size_t N2, typename T > |
auto & | cast_ref (std::index_sequence< N1, N2 >, std::vector< T > const &vctr) noexcept |
|
template<std::size_t N1, std::size_t N2, std::size_t N3, typename T > |
auto & | cast_ref (std::vector< T > &vctr) noexcept |
|
template<std::size_t N1, std::size_t N2, std::size_t N3, typename T > |
auto & | cast_ref (std::vector< T > const &vctr) noexcept |
|
template<std::size_t N1, std::size_t N2, std::size_t N3, typename T > |
auto & | cast_ref (std::index_sequence< N1, N2, N3 >, std::vector< T > &vctr) noexcept |
|
template<std::size_t N1, std::size_t N2, std::size_t N3, typename T > |
auto & | cast_ref (std::index_sequence< N1, N2, N3 >, std::vector< T > const &vctr) noexcept |
|
template<size_t N1, size_t N2, typename T , size_t N, typename = std::enable_if_t<N1* N2 == N>> |
auto | cast_array (T(&array)[N]) noexcept |
|
template<size_t N1, size_t N2, typename T , size_t N = N1 * N2> |
auto | cast_array (T(&array)[N1][N2]) noexcept |
|
template<size_t N1, size_t N2, size_t N3, typename T , size_t N, typename = std::enable_if_t<N1* N2* N3 == N>> |
auto | cast_array (T(&array)[N]) noexcept |
|
template<size_t N1, size_t N2, size_t N3, typename T , size_t N = N1 * N2* N3> |
auto | cast_array (T(&array)[N1][N2][N3]) noexcept |
|
template<typename T , size_t N> |
auto | cast_array (std::array< T, N > &array) noexcept |
|
template<typename T , size_t N> |
auto | cast_array (std::array< T, N > const &array) noexcept |
|
template<size_t N1, size_t N2, typename T , size_t N, typename = std::enable_if_t< N1 * N2 == N>> |
auto | cast_array (std::array< T, N > &array) noexcept |
|
template<size_t N1, size_t N2, typename T , size_t N, typename = std::enable_if_t< N1 * N2 == N>> |
auto | cast_array (std::array< T, N > const &array) noexcept |
|
template<size_t N1, size_t N2, size_t N3, typename T , size_t N, typename = std::enable_if_t< N1 * N2 * N3 == N>> |
auto | cast_array (std::array< T, N > &array) noexcept |
|
template<size_t N1, size_t N2, size_t N3, typename T , size_t N, typename = std::enable_if_t< N1 * N2 * N3 == N>> |
auto | cast_array (std::array< T, N > const &array) noexcept |
|
template<auto Index, typename... ArgTypes, typename = std::enable_if_t<(Index < sizeof...(ArgTypes))>> |
decltype(auto) | get_nth_argument (ArgTypes &&... args) |
|
template<typename T , size_t Size> |
auto | convert_to_tuple (const std::array< T, Size > &array) |
|
template<template< typename... > class TemplateType> |
constexpr auto | template_category () |
|
template<typename > |
constexpr auto | template_category (...) |
|
template<typename ElementType , size_t ElementCount> |
| array_wrapper_t (ElementType(&)[ElementCount]) -> array_wrapper_t< ElementType *, size_t > |
|
template<typename ElementType , size_t ElementSize> |
auto | array_wrapper (ElementType(&array)[ElementSize]) noexcept |
|
template<typename Type > |
auto | to_ref (const Type &value) |
|
template<typename ElementType , size_t ElementSize> |
constexpr size_t | array_size (ElementType(&array)[ElementSize]) noexcept |
|
template<typename ContainerType > |
auto | reverse (ContainerType &&container) |
|
template<typename ElementType , size_t ElementCount> |
auto | reverse (ElementType(&array)[ElementCount]) |
|
template<typename Type , typename... Types> |
auto | reverse (Type &&arg, Types &&... args) |
|
template<typename Type , typename... Types> |
auto | make_vector (Type &&arg, Types &&... args) |
|
template<typename Type , typename... Types> |
auto | make_container (Type &&arg, Types &&... args) |
|
template<template< typename, std::size_t > class ContainerType, typename ArgType , typename... ArgTypes> |
auto | make_container (ArgType &&arg, ArgTypes &&... args) |
|
template<typename ContainerType , typename IndexType > |
decltype(auto) | get_element (ContainerType container, IndexType index) |
|
template<typename Type , typename... Types> |
auto | make_variants (Type &&arg, Types &&... args) |
|
template<typename Type > |
decltype(auto) | decay (Type &&arg) |
|
template<typename Type > |
std::string | type_to_string () |
| Returns Type's string name. More...
|
|
template<typename Type > |
std::ostream & | operator<< (std::ostream &os, range< Type > const &r) |
|
template<typename Type > |
| range (Type) -> range< Type > |
|
template<typename Type > |
| range (Type, Type) -> range< Type > |
|
template<typename CharType > |
std::basic_ostream< CharType > & | operator<< (std::basic_ostream< CharType > &os, const no_type_t &) |
|
template<typename CharType > |
std::basic_ostream< CharType > & | operator>> (std::basic_ostream< CharType > &os, const no_type_t &) |
|
constexpr no_type_t | operator+ (no_type_t, no_type_t) noexcept |
|
constexpr no_type_t | operator- (no_type_t, no_type_t) noexcept |
|
constexpr no_type_t | operator* (no_type_t, no_type_t) noexcept |
|
constexpr no_type_t | operator/ (no_type_t, no_type_t) noexcept |
|
constexpr bool | operator== (no_type_t, no_type_t) noexcept |
|
constexpr bool | operator!= (no_type_t, no_type_t) noexcept |
|
template<typename T > |
constexpr std::enable_if_t<!is_no_type_v< remove_cvref_t< T > >, bool > | operator== (no_type_t, T &&) noexcept |
|
template<typename T > |
constexpr std::enable_if_t<!is_no_type_v< remove_cvref_t< T > >, bool > | operator!= (T &&, no_type_t) noexcept |
|
template<typename T > |
constexpr std::enable_if_t<!is_no_type_v< remove_cvref_t< T > >, no_type_t > | operator+ (no_type_t, T &&) noexcept |
|
template<typename T > |
constexpr std::enable_if_t<!is_no_type_v< remove_cvref_t< T > >, no_type_t > | operator+ (T &&, no_type_t) noexcept |
|
template<typename T > |
constexpr std::enable_if_t<!is_no_type_v< remove_cvref_t< T > >, no_type_t > | operator- (no_type_t, T &&) noexcept |
|
template<typename T > |
constexpr std::enable_if_t<!is_no_type_v< remove_cvref_t< T > >, no_type_t > | operator- (T &&, no_type_t) noexcept |
|
template<typename T > |
constexpr std::enable_if_t<!is_no_type_v< remove_cvref_t< T > >, no_type_t > | operator* (no_type_t, T &&) noexcept |
|
template<typename T > |
constexpr std::enable_if_t<!is_no_type_v< remove_cvref_t< T > >, no_type_t > | operator* (T &&, no_type_t) noexcept |
|
template<typename T > |
constexpr std::enable_if_t<!is_no_type_v< remove_cvref_t< T > >, no_type_t > | operator/ (no_type_t, T &&) noexcept |
|
template<typename T > |
constexpr std::enable_if_t<!is_no_type_v< remove_cvref_t< T > >, no_type_t > | operator/ (T &&, no_type_t) noexcept |
|
template<auto N, typename T , T Id, T... Ids> |
constexpr T | fn_seq_element (std::integer_sequence< T, Id, Ids... >) |
|
template<typename T , T Id, T... Ids> |
auto | seq_to_array (std::integer_sequence< T, Id, Ids... >) |
|
template<typename IdType , typename IntType , std::size_t N> |
std::array< IntType, N > | seq_indices (IdType i, std::array< IntType, N > const &powers) |
|
bool | is_stack_reversed () |
|
bool | is_stack_in_order () |
|
bool | is_parameter_stack_order_reversed () |
|
template<auto RowValue, auto ColumnValue, typename ArrayType , auto Count = RowValue * ColumnValue, typename = std::enable_if_t< is_std_array_v<ArrayType> && Count == std_array_size_v<ArrayType>>> |
decltype(auto) | array_indexer (ArrayType &&array) |
|
template<auto RowValue, auto ColumnValue, typename ArrayType , auto Count = RowValue * ColumnValue, typename = std::enable_if_t< is_std_array_v<ArrayType> && Count == std_array_size_v<ArrayType>>> |
decltype(auto) | array_indexer_row_column (ArrayType &&array) |
|
template<auto RowValue, auto ColumnValue, typename ArrayType , auto Count = RowValue * ColumnValue, typename = std::enable_if_t< is_std_array_v<ArrayType> && Count == std_array_size_v<ArrayType>>> |
decltype(auto) | array_writer (ArrayType &&array) |
|
template<auto RowValue, auto ColumnValue, typename ArrayType , auto Count = RowValue * ColumnValue, typename = std::enable_if_t< is_std_array_v<ArrayType> && Count == std_array_size_v<ArrayType>>> |
decltype(auto) | array_writer_row_column (ArrayType &&array) |
|
template<auto RowValue, auto ColumnValue, typename ArrayType , auto Count = RowValue * ColumnValue, typename = std::enable_if_t< is_std_array_v<ArrayType> && Count == std_array_size_v<ArrayType>>> |
decltype(auto) | array_reader (ArrayType &&array) |
|
template<auto RowValue, auto ColumnValue, typename ArrayType , auto Count = RowValue * ColumnValue, typename = std::enable_if_t< is_std_array_v<ArrayType> && Count == std_array_size_v<ArrayType>>> |
decltype(auto) | array_reader_row_column (ArrayType &&array) |
|
template<auto RowValue, auto ColumnValue, typename TupleType , auto Count = RowValue * ColumnValue, typename = std::enable_if_t<is_tuple_v<TupleType> && Count == tuple_size_v<TupleType>>> |
decltype(auto) | tuple_reader (TupleType &&tuple) |
|
template<auto RowValue, auto ColumnValue, typename TupleType , auto Count = RowValue * ColumnValue, typename = std::enable_if_t<is_tuple_v<TupleType> && Count == tuple_size_v<TupleType>>> |
decltype(auto) | tuple_reader_row_column (TupleType &&tuple) |
|
template<auto RowValue, auto ColumnValue, typename TupleType , auto Count = RowValue * ColumnValue, typename = std::enable_if_t<is_tuple_v<TupleType> && Count == tuple_size_v<TupleType>>> |
decltype(auto) | tuple_writer (TupleType &&tuple) |
|
template<auto RowValue, auto ColumnValue, typename TupleType , auto Count = RowValue * ColumnValue, typename = std::enable_if_t<is_tuple_v<TupleType> && Count == tuple_size_v<TupleType>>> |
decltype(auto) | tuple_writer_row_column (TupleType &&tuple) |
|
template<size_t Count, typename WorkhorseType > |
std::enable_if_t< std::is_invocable_v< WorkhorseType, indexer_t< 0 > > > | drive_workhorse (WorkhorseType &&workhorse) |
|
template<auto RowCount, auto ColumnCount, typename WorkhorseType > |
std::enable_if_t< std::is_invocable_v< WorkhorseType, indexer_t< 0 >, indexer_t< 0 > >||std::is_invocable_v< WorkhorseType, indexer_2d_t< 0, 0 > > > | drive_workhorse (WorkhorseType &&workhorse) |
|
template<auto HeightCount, auto RowCount, auto ColumnCount, typename WorkhorseType > |
std::enable_if_t< std::is_invocable_v< WorkhorseType, indexer_3d_t< 0, 0, 0 > >||std::is_invocable_v< WorkhorseType, indexer_t< 0 >, indexer_t< 0 >, indexer_t< 0 > > > | drive_workhorse (WorkhorseType &&workhorse) |
|
template<auto... RangeValues, typename WorkhorseType , typename dummy_sequence = make_sequence_t<StackInOrder, 1>, typename sequence_info = sequence_info_t<true, dummy_sequence>> |
std::enable_if_t< std::is_invocable_v< remove_cvref_t< WorkhorseType >, indexer_t< 0 > >||std::is_invocable_v< remove_cvref_t< WorkhorseType >, indexer_t< 0 >, sequence_info > > | for_workhorse (WorkhorseType &&workhorse) |
|
template<typename TupleType , typename WorkhorseType , typename dummy_sequence = make_sequence_t<StackInOrder, 1>, typename sequence_info = sequence_info_t<true, dummy_sequence>> |
std::enable_if_t< is_tuple_v< remove_cvref_t< TupleType > > &&(std::is_invocable_v< remove_cvref_t< WorkhorseType >, indexer_t< 0 > >||std::is_invocable_v< remove_cvref_t< WorkhorseType >, indexer_t< 0 >, sequence_info >)> | for_workhorse (TupleType &&tuple, WorkhorseType &&workhorse) |
|
template<auto... RangeValues, typename FuncType > |
auto | for_tuple (FuncType &&f) |
|
template<typename... Types> |
auto | reverse_tuple (std::tuple< Types... > const &tuple) |
|
template<typename... Types> |
type_list_t< Types... > | type_to_string (Types &&... args) |
|
template<typename FuncType , typename... ArgTypes> |
types::tuple_if_all_apply_t< FuncType, ArgTypes... > | apply_tuple (FuncType &&f, ArgTypes &&... args) |
|
template<typename FuncType , typename... ArgTypes> |
types::vector_if_all_apply_t< FuncType, ArgTypes... > | apply_vector (FuncType &&f, ArgTypes &&... args) |
|
template<typename FuncType , typename... ArgTypes> |
types::array_if_all_apply_t< FuncType, ArgTypes... > | apply_array (FuncType &&f, ArgTypes &&... args) |
|
template<auto... RangeValues, typename FuncType > |
auto | for_array (FuncType &&f) |
|
template<typename Type , std::size_t N> |
auto | reverse_array (std::array< Type, N > const &array) |
|
template<auto... RangeValues, typename FuncType > |
auto | for_vector (FuncType &&f) |
|
template<typename Type , typename... Types, auto Size = sizeof...(Types) + 1, typename common_type = std::common_type_t<Type, Types...>, typename array_type = std::array<common_type, Size>> |
auto | convert_to_array (const std::tuple< Type, Types... > &tuple) |
|
template<template< typename, typename... >class ContainerType, typename Type , typename... Types, auto Size = sizeof...(Types) + 1, typename common_type = std::common_type_t<Type, Types...>, typename container_type = ContainerType<common_type>> |
auto | convert_to_container (const std::tuple< Type, Types... > &tuple) |
|
template<typename ContainerType , typename Type , typename... Types, auto Size = sizeof...(Types) + 1> |
auto | convert_to_container (const std::tuple< Type, Types... > &tuple) |
|
template<template< typename, typename... >class ContainerType, typename Type , typename... Types, size_t Size, typename container_type = ContainerType<Type, Types...>> |
auto | convert_to_container (const std::array< Type, Size > &array) |
|
template<int ArgumentIndex, typename FuncType , typename ArgType , typename... ArgTypes, typename = std::enable_if_t< (ArgumentIndex < sizeof...(ArgTypes) + 1) >> |
auto | freeze_parameter (FuncType &&func, ArgType arg, ArgTypes... args) |
|
template<int ArgumentIndex, typename FuncType , typename ArgType , typename... ArgTypes, typename = std::enable_if_t< (ArgumentIndex < sizeof...(ArgTypes) + 1) >> |
auto | freeze_parameter (FuncType &&func, const std::tuple< ArgType, ArgTypes... > &arguments) |
|
template<int FuncIndex, int ArgumentIndex, typename FuncType , typename... FuncTypes, typename ArgFirst , typename... ArgTypes, typename = std::enable_if_t< ( FuncIndex < (sizeof...(FuncTypes) + 1) ) && (ArgumentIndex < sizeof...(ArgTypes) + 1 )>> |
auto | freeze_parameter (const std::tuple< FuncType, FuncTypes... > &func_tuple, ArgFirst arg, ArgTypes... args) |
|
template<int FuncIndex, int ArgumentIndex, typename FuncType , typename... FuncTypes, typename ArgFirst , typename... ArgTypes, typename = std::enable_if_t< ( FuncIndex < sizeof...(FuncTypes) + 1 ) && (ArgumentIndex < sizeof...(ArgTypes)+1)>> |
auto | freeze_parameter (const std::tuple< FuncType, FuncTypes... > &func_tuple, const std::tuple< ArgFirst, ArgTypes... > &arguments) |
|
template<template< typename, size_t > class ReturnClass, typename FuncType , typename... FuncTypes, typename ArgFirst , typename... ArgTypes> |
auto | evaluate_lambdas (const std::tuple< FuncType, FuncTypes... > &tuple, ArgFirst &&arg, ArgTypes &&... args) |
|
template<template< typename, size_t > class ReturnClass, typename FuncType , typename... FuncTypes, typename ArgFirst > |
auto | evaluate_lambdas (const std::tuple< FuncType, FuncTypes... > &tuple, ArgFirst &&arg) |
|
template<template< typename, typename... > class ContainerType, typename EleType , typename... Types> |
auto | erase (ContainerType< EleType, Types... > &container, size_t index) |
|
template<template< typename, typename... > class ContainerType, typename Type , typename... Types> |
auto | pop_front (ContainerType< Type, Types... > &container) |
|
template<template< typename, typename... > class ContainerType, typename Type , typename... Types> |
auto | pop_back (ContainerType< Type, Types... > &container) |
|
template<template< typename, typename... > class ContainerType, typename EleType , typename Type , typename... Types> |
void | push_front (ContainerType< Type, Types... > &container, EleType &&ele) |
|
template<template< typename, typename... > class ContainerType, typename EleType , typename Type , typename... Types> |
void | push_back (ContainerType< Type, Types... > &container, EleType &&ele) |
|
template<template< typename, typename... > class ContainerType, typename... EleTypes, typename Type , typename... Types> |
void | emplace_front (ContainerType< Type, Types... > &container, EleTypes &&... eles) |
|
template<template< typename, typename... > class ContainerType, typename... EleTypes, typename Type , typename... Types> |
void | emplace_back (ContainerType< Type, Types... > &container, EleTypes &&... eles) |
|
template<template< typename, typename... > class ContainerType, typename Type , typename... Types> |
ContainerType< Type, Types... > | reverse_order (const ContainerType< Type, Types... > &container) |
|
template<template< typename, typename... > class ContainerType, typename Type , typename... Types> |
void | reverse_order_in_place (ContainerType< Type, Types... > &container) |
|
template<bool bReverseOrder, typename TargetContainerType , typename SourceContainerType > |
void | append_to_container (TargetContainerType &target_container, SourceContainerType &&source_container) |
|
template<bool bReverseOrder, typename TargetContainerType , typename SourceContainerType > |
void | prepend_to_container (TargetContainerType &target_container, SourceContainerType &&source_container) |
|
template<template< typename, typename... > class ContainerType, typename Type , typename... Types> |
auto | make_random_access_container (Type &&arg, Types &&... args) |
|
template<typename Type , typename... Types> |
auto | make_deque (Type &&arg, Types &&... args) |
|
template<typename ArgType , typename... ArgTypes> |
auto | make_container (ArgType &&arg, ArgTypes &&... args) |
| create either tuple or vector More...
|
|
template<typename ArgType , typename... ArgTypes> |
auto | create_container (ArgType &&arg, ArgTypes &&... args) |
| Create a container object. More...
|
|
template<typename VisitorType , typename PairType > |
std::enable_if_t< is_pair_of_variant_v< remove_cv_ref_t< PairType > > > | visit_variant (VisitorType &&visit, PairType &&vpr) |
|
template<typename VisitorType , typename VariantType > |
std::enable_if_t< is_variant_v< remove_cv_ref_t< VariantType > > > | visit_variant (VisitorType &&visit, VariantType &&vt) |
|
template<typename VisitorType , typename IteratorType , typename PairType > |
std::enable_if_t< is_pair_of_variant_v< remove_cv_ref_t< PairType > > > | visit_variant (VisitorType &&visit, IteratorType &&itr, PairType &&vpr) |
|
template<typename VisitorType , typename IteratorType , typename VariantType > |
std::enable_if_t< is_variant_v< remove_cv_ref_t< VariantType > > > | visit_variant (VisitorType &&visit, IteratorType &&itr, VariantType &&vt) |
|
template<typename... CallbackTypes> |
| variant_visitors (CallbackTypes...) -> variant_visitors< CallbackTypes... > |
|
template<typename... CallbackTypes> |
variant_visitors< remove_cv_ref_t< CallbackTypes >... > | make_variant_visitors (CallbackTypes &&... visitors) |
|
|
template<typename Type > |
constexpr bool | is_pair_type_v = is_pair_type_st<remove_cv_ref_t<Type>>::value |
|
template<typename Type > |
constexpr bool | is_pair_of_variant_type_v = is_pair_of_variant_type_st<remove_cv_ref_t<Type>>::value |
|
template<typename Type > |
constexpr bool | is_variant_type_v = is_variant_type_st<remove_cv_ref_t<Type>>::value |
|
template<typename T > |
constexpr bool | is_constrained_any_v = hidden::st_is_constrained_any<T>::value |
|
template<typename T > |
constexpr bool | is_special_type_v = is_constrained_any_v<T> || is_variant_v<T> || types::is_tuple_v<T> |
|
template<typename Type > |
constexpr auto | type_max_v = std::numeric_limits<Type>::max() |
|
constexpr size_t | InvalidIndex = type_max_v<size_t> |
|
constexpr size_t | SelectAll = InvalidIndex |
|
template<typename Type > |
constexpr bool | is_tag_type_v = hidden::is_tag_type_v<remove_cvref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_numbers_type_v = hidden::st_is_numbers_type_v<remove_cvref_t<Type>>::value |
|
template<typename Type > |
constexpr bool | is_vector_v = hidden::st_is_vector_v<remove_cvref_t<Type>>::value |
|
template<typename Type > |
constexpr bool | is_integer_sequence_v = hidden::is_integer_sequence_v<remove_cvref_t<Type>> |
|
template<typename T > |
constexpr bool | is_type_list_v = hidden::is_type_list_v<remove_cv_ref_t<T>> |
|
template<typename Type > |
constexpr bool | is_template_type_v = hidden::is_template_type_v<remove_cvref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_array_v = std::is_array_v<remove_cv_ref_t<Type>> |
|
template<auto FuncType, typename... ArgTypes> |
constexpr auto | is_noexcept_v = noexcept(FuncType(std::declval<ArgTypes>()...)) |
| Test if a function is specified with the keyword noexcept. More...
|
|
template<typename Type > |
constexpr bool | is_char_v = hidden::is_char_v<Type> |
|
template<typename Type > |
constexpr auto | is_variant_v = hidden::is_variant_v<Type> |
|
template<typename Type > |
constexpr auto | is_unique_ptr_v = hidden::is_variant_v<Type> |
|
template<typename Type > |
constexpr auto | is_pair_v = hidden::is_pair_v<Type> |
|
template<typename Type > |
constexpr auto | is_pair_of_variant_v = hidden::is_pair_of_variant_v<Type> |
|
template<typename Type > |
constexpr auto | is_tuple_v = hidden::is_tuple_v<remove_cvref_t<Type>> |
|
template<typename Type > |
constexpr auto | is_tuple_empty_v = hidden::is_tuple_empty_v<remove_cvref_t<Type>> |
|
template<typename Type > |
constexpr auto | tuple_size_v = hidden::tuple_size_v<remove_cvref_t<Type>> |
|
template<typename Type > |
constexpr auto | is_any_v = hidden::is_any_v<Type> |
|
template<typename Type > |
constexpr auto | is_map_or_unordered_map_v = hidden::is_map_or_unordered_map_v<Type> |
|
template<typename Type > |
constexpr auto | is_basic_string_v = hidden::is_basic_string_v<Type> |
|
template<typename Type > |
constexpr auto | is_set_or_unordered_set_v = hidden::is_set_or_unordered_set_v<Type> |
|
template<typename Type > |
constexpr bool | is_no_type_v = std::is_same_v<Type, no_type_t> |
|
template<typename T , typename S > |
constexpr bool | is_addition_valid_v |
|
template<typename T , typename S > |
constexpr bool | is_subtraction_valid_v |
|
template<typename T , typename S > |
constexpr bool | is_multiplication_valid_v |
|
template<typename T , typename S > |
constexpr bool | is_division_valid_v |
|
template<typename T , typename S > |
constexpr bool | is_arithmetic_valid_v |
|
template<typename Type > |
constexpr bool | is_valid_type_v = !is_no_type_v<Type> |
|
template<typename Type > |
constexpr bool | is_std_array_v = hidden::st_is_std_array<remove_cv_ref_t<Type>>::value |
|
template<typename Type > |
constexpr size_t | std_array_size_v = hidden::st_std_array_element<remove_cv_ref_t<Type>>::value |
|
constexpr bool | StackInOrder = true |
|
constexpr bool | InOrderSequence = true |
|
constexpr bool | ReverseSequence = false |
|
template<typename SequenceType > |
constexpr auto | sequence_first_element_v = hidden::sequence_first_element_v<remove_cvref_t<SequenceType>> |
|
template<typename SequenceType > |
constexpr auto | sequence_last_element_v = hidden::sequence_last_element_v<remove_cvref_t<SequenceType>> |
|
template<auto Nth, typename SequenceType > |
constexpr auto | sequence_nth_element_v = hidden::sequence_nth_element_v<Nth, remove_cvref_t<SequenceType>> |
|
template<typename SequenceType > |
constexpr auto | sequence_element_count_v = hidden::sequence_element_count_v<remove_cvref_t<SequenceType>> |
|
template<typename SequenceType > |
constexpr auto | sequence_span_v = hidden::sequence_span_v<remove_cvref_t<SequenceType>> |
|
template<typename T > |
constexpr bool | is_iterator_type_v = hidden::is_iterator_type_v<remove_cv_ref_t<T>> |
|
template<typename T > |
constexpr bool | is_iterator_excluding_pointer_v |
|
template<typename... Types> |
constexpr auto | type_count_v = hidden::type_count_v<Types...> |
|
template<typename Type > |
constexpr auto | is_template_v = hidden::is_template_v<Type> |
| Test whether the type parameter is a template type. More...
|
|
template<typename Type > |
constexpr auto | template_parameter_count = hidden::template_parameter_count<Type> |
|
template<typename Type1 , typename Type2 > |
constexpr auto | is_same_template_type_v = hidden::is_same_template_type_v<Type1, Type2> |
|
template<typename Type1 , typename Type2 > |
constexpr auto | is_same_template_v = hidden::is_same_template_v<Type1, Type2> |
|
template<typename Type > |
constexpr auto | is_string_v = hidden::is_string_v<Type> |
| Test is Type is of string type. More...
|
|
template<typename Type > |
constexpr auto | is_reference_wrapper_v = hidden::is_reference_wrapper_v<Type> |
|
template<typename Type , typename... Types> |
constexpr auto | is_same_v = hidden::is_same_v<Type, Types...> |
| Test if all types are the same. More...
|
|
template<typename Type , typename... Types> |
constexpr auto | is_same_flat_v = is_same_v<flat_type_list_t<Type, Types...>> |
|
template<typename TestType , typename... Types> |
constexpr auto | is_in_list_v = hidden::is_in_list_v<TestType, Types...> |
| test if TestType exists in Types... More...
|
|
template<typename Type > |
constexpr auto | is_integer_v = hidden::is_integer_v<Type> |
|
template<typename Type > |
constexpr auto | is_signed_integer_v = hidden::is_signed_integer_v<Type> |
|
template<typename Type > |
constexpr auto | is_unsigned_integer_v = hidden::is_unsigned_integer_v<Type> |
|
template<typename Type > |
constexpr auto | is_integral_v = hidden::is_integral_v<Type> |
|
template<typename Type > |
constexpr auto | is_signed_integral_v = hidden::is_signed_integral_v<Type> |
|
template<typename Type > |
constexpr auto | is_unsigned_integral_v = hidden::is_unsigned_integral_v<Type> |
|
template<typename Type > |
constexpr auto | is_real_number_v = hidden::is_real_number_v<Type> |
|
template<typename Type > |
constexpr auto | is_numerical_number_v = hidden::is_numerical_number_v<Type> |
|
template<typename TypeList , typename... TestTypes> |
constexpr auto | are_all_in_list_v = hidden::are_all_in_list_v<TypeList, TestTypes...> |
|
template<typename... Types> |
constexpr auto | are_integers_v = hidden::are_integers_v<Types...> |
|
template<typename... Types> |
constexpr auto | are_signed_integers_v = hidden::are_signed_integers_v<Types...> |
|
template<typename... Types> |
constexpr auto | are_unsigned_integers_v = hidden::are_unsigned_integers_v<Types...> |
|
template<typename... Types> |
constexpr auto | are_integrals_v = hidden::are_integrals_v<Types...> |
|
template<typename... Types> |
constexpr auto | are_signed_integrals_v = hidden::are_signed_integrals_v<Types...> |
|
template<typename... Types> |
constexpr auto | are_unsigned_integrals_v = hidden::are_unsigned_integrals_v<Types...> |
|
template<typename... Types> |
constexpr auto | are_real_numbers_v = hidden::are_real_numbers_v<Types...> |
|
template<typename... Types> |
constexpr auto | are_numerical_numbers_v = hidden::are_numerical_numbers_v<Types...> |
|
template<typename Type1 , typename Type2 > |
constexpr auto | is_operable_v = hidden::is_operable_v<Type1, Type2> |
|
template<typename... Types> |
constexpr auto | common_type_v = hidden::common_type_v<Types...> |
|
template<typename FuncType , typename TupleType > |
constexpr bool | is_apply_v = !is_no_type_v<apply_return_t<FuncType, TupleType>> |
|
template<typename FuncType , typename... TupleTypes> |
constexpr bool | all_apply_v = ( is_apply_v<FuncType, TupleTypes> && ... ) |
|
template<typename FuncType , typename... TupleTypes> |
constexpr bool | common_apply_v |
|
template<typename Type > |
constexpr bool | is_empty_available_v = hidden::is_empty_available_v<Type> |
|
template<typename Type > |
constexpr bool | is_capacity_available_v = hidden::is_capacity_available_v<Type> |
|
template<typename Type > |
constexpr bool | is_shrink_to_fit_available_v = hidden::is_shrink_to_fit_available_v<Type> |
|
template<typename Type > |
constexpr bool | is_index_operator_available_v = hidden::is_index_operator_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_push_front_available_v = hidden::is_push_front_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_push_back_available_v = hidden::is_push_back_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_begin_available_v = hidden::is_begin_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_end_available_v = hidden::is_end_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_rbegin_available_v = hidden::is_rbegin_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_rend_available_v = hidden::is_rend_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_erase_available_v = hidden::is_erase_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_resize_available_v = hidden::is_resize_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_reserve_available_v = hidden::is_reserve_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_size_available_v = hidden::is_size_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_insert_available_v = hidden::is_insert_available_v<Type> |
|
template<typename Type > |
constexpr bool | is_insert_iterator_available_v = hidden::is_insert_iterator_available_v<Type> |
|
template<typename Type > |
constexpr bool | is_emplace_front_available_v = hidden::is_emplace_front_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_emplace_back_available_v = hidden::is_emplace_back_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_emplace_available_v = hidden::is_emplace_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_front_available_v = hidden::is_front_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_back_available_v = hidden::is_back_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_pop_front_available_v = hidden::is_pop_front_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_pop_back_available_v = hidden::is_pop_back_available_v<remove_cv_ref_t<Type>> |
|
template<typename Type > |
constexpr bool | is_container_type_v = hidden::is_container_type_v<remove_cv_ref_t<Type>> |
|
template<typename FuncType , typename... ArgTypes> |
constexpr bool | is_callable_v = hidden::is_callable_v<FuncType, ArgTypes...> |
|
template<typename FuncType , typename... ArgTypes> |
constexpr bool | is_void_return_type_v = hidden::is_void_return_type_v<FuncType, ArgTypes...> |
|
template<typename T , typename... Types> |
constexpr bool | pairwise_common_type_v = hidden::st_pairwise_common<remove_cvref_t<T>, remove_cvref_t<Types>...>::value |
|
template<typename T , typename S > |
constexpr bool | tuple_common_type_v = hidden::st_tuple_common_type<remove_cvref_t<T>, remove_cvref_t<S>>::value |
|
template<typename ArgType , typename... Types> |
constexpr auto | is_type_in_list_v = hidden::is_type_in_list_v<ArgType, Types...> |
|
template<typename LeftList , typename RightList > |
constexpr auto | is_type_list_equivalent_v |
|
template<typename TupleType > |
constexpr bool | has_tuple_common_type_v = hidden::has_tuple_common_type_v<remove_cvref_t<TupleType>> |
|
template<typename CallbackType , typename... Types> |
constexpr bool | is_invocable_v = hidden::st_is_invocable<CallbackType, Types...>::value |
|
template<typename CallbackType , typename... Types> |
constexpr bool | is_all_callable_v = types::type_count_v<callable_list_t<CallbackType, Types...>> == types::type_count_v<Types...> |
|
template<typename CallbackType , typename... Types> |
constexpr bool | is_any_callable_v = types::type_count_v<callable_list_t<CallbackType, Types...>> != 0 |
|
template<typename Type > |
constexpr auto | is_template_template_v = hidden::is_template_template_v<Type> |
|
template<typename Type , typename ListHead , typename... ListTails> |
constexpr bool | is_type_in_the_set_v |
|
template<typename Type , typename ListHead , typename... ListTails> |
constexpr bool | is_constructible_over_the_set_v |
|
template<typename Type , typename ListHead , typename... ListTails> |
constexpr bool | is_assignable_to_the_set_v |
|
template<typename Type , typename ListHead , typename... ListTails> |
constexpr bool | is_assignable_from_the_set_v |
|