▼Nsl | |
►Nconcepts | |
Rright_shiftable_with | Determines whether two types can be used in operator >> statements |
Rright_shiftable_with_r | Determines whether two types can be used in operator >> statements and checks if the return type is convertible to the expected |
Rright_shiftable | Determines whether the given type can be used on both sides of operator >> statements |
Rright_shiftable_r | Determines whether the given type can be used on both sides of operator >> statements and checks if the return type is convertible to the expected |
Rleft_shiftable_with | Determines whether two types can be used in operator << statements |
Rleft_shiftable_with_r | Determines whether two types can be used in operator << statements and checks if the return type is convertible to the expected |
Rleft_shiftable | Determines whether the given type can be used on both sides of operator << statements |
Rleft_shiftable_r | Determines whether the given type can be used on both sides of operator << statements and checks if the return type is convertible to the expected |
Rbidirectional_shiftable_with | Determines whether two types can be used in operator >> and operator << statements |
Rbidirectional_shiftable_with_r | Determines whether two types can be used in operator >> and operator << statements and checks if the return type is convertible to the expected |
Rbidirectional_shiftable | Determines whether the given type can be used on both sides of operator << and operator >> statements |
Rbidirectional_shiftable_r | Determines whether the given type can be used on both sides of operator >> and operator << statements and checks if the return type is convertible to the expected |
Rright_shift_assignable_with | Determines whether two types can be used in operator >>= statements |
Rright_shift_assignable_with_r | Determines whether two types can be used in operator >>= statements and checks if the return type is convertible to the expected |
Rright_shift_assignable | Determines whether the given type can be used on both sides of operator >>= statements |
Rright_shift_assignable_r | Determines whether the given type can be used on both sides of operator >>= statements and checks if the return type is convertible to the expected |
Rleft_shift_assignable_with | Determines whether two types can be used in operator <<= statements |
Rleft_shift_assignable_with_r | Determines whether two types can be used in operator <<= statements and checks if the return type is convertible to the expected |
Rleft_shift_assignable | Determines whether the given type can be used on both sides of operator <<= statements |
Rleft_shift_assignable_r | Determines whether the given type can be used on both sides of operator <<= statements and checks if the return type is convertible to the expected |
Rbidirectional_shift_assignable_with | Determines whether two types can be used in operator >>= and operator <<= statements |
Rbidirectional_shift_assignable_with_r | Determines whether two types can be used in operator >>= and operator <<= statements and checks if the return type is convertible to the expected |
Rbidirectional_shift_assignable | Determines whether the given type can be used on both sides of operator <<= and operator >>= statements |
Rbidirectional_shift_assignable_r | Determines whether the given type can be used on both sides of operator <<= and operator >>= statements and checks if the return type is convertible to the expected |
Rfully_shiftable_with | Determines whether two types can be used in operator <<, >>, <<= and >>= statements |
Rfully_shiftable_with_r | Determines whether two types can be used in operator <<, >>, <<= and >>= statements and checks if the return types are convertible to the expected ones |
Rfully_shiftable | Determines whether the given type can be used on both sides of operator <<, >>, <<= and >>= statements |
Rfully_shiftable_r | Determines whether the given type can be used on both sides of operator <<, >>, <<= and >>= statements and checks if the return types are convertible to the expected ones |
Rcomplemented | Determines whether a type can be used in operator ~ expression |
Rcomplemented_r | Determines whether a type can be used in operator ~ expression and if the return type is convertible to the expected one |
Rconjunctive_with | Determines whether two types can be used in operator & expressions |
Rconjunctive_with_r | Determines whether two types can be used in operator & expressions and if the return type is convertible to the expected one |
Rconjunctive | Determines whether a type can be used on both sides of operator & expressions |
Rconjunctive_r | Determines whether a type can be used on both sides of operator & expressions and if the return type is convertible to the expected one |
Rconjunctive_assign_with | Determines whether two types can be used in operator &= expressions |
Rconjunctive_assign_with_r | Determines whether two types can be used in operator &= expressions and if the return type is convertible to the expected one |
Rconjunctive_assign | Determines whether a type can be used on both sides of operator &= expressions |
Rconjunctive_assign_r | Determines whether a type can be used on both sides of operator &= expressions and if the return type is convertible to the expected one |
Rdisjunctive_with | Determines whether two types can be used in operator | expressions |
Rdisjunctive_with_r | Determines whether two types can be used in operator | expressions and if the return type is convertible to the expected one |
Rdisjunctive | Determines whether a type can be used on both sides of operator | expressions |
Rdisjunctive_r | Determines whether a type can be used on both sides of operator | expressions and if the return type is convertible to the expected one |
Rdisjunctive_assign_with | Determines whether two types can be used in operator |= expressions |
Rdisjunctive_assign_with_r | Determines whether two types can be used in operator |= expressions and if the return type is convertible to the expected one |
Rdisjunctive_assign | Determines whether a type can be used on both sides of operator |= expressions |
Rdisjunctive_assign_r | Determines whether a type can be used on both sides of operator |= expressions and if the return type is convertible to the expected one |
Rexclusive_disjunctive_with | Determines whether two types can be used in operator ^ expressions |
Rexclusive_disjunctive_with_r | Determines whether two types can be used in operator ^ expressions and if the return type is convertible to the expected one |
Rexclusive_disjunctive | Determines whether a type can be used on both sides of operator ^ expressions |
Rexclusive_disjunctive_r | Determines whether a type can be used on both sides of operator ^ expressions and if the return type is convertible to the expected one |
Rexclusive_disjunctive_assign_with | Determines whether two types can be used in operator ^= expressions |
Rexclusive_disjunctive_assign_with_r | Determines whether two types can be used in operator ^= expressions and if the return type is convertible to the expected one |
Rexclusive_disjunctive_assign | Determines whether a type can be used on both sides of operator ^= expressions |
Rexclusive_disjunctive_assign_r | Determines whether a type can be used on both sides of operator ^= expressions and if the return type is convertible to the expected one |
Rlogically_combinable_with | Determines whether two types can be used in operator &, | amd ^ expressions |
Rlogically_combinable_with_r | Determines whether two types can be used in operator &, | amd ^ expressions and if the return type is convertible to the expected one |
Rlogically_combinable | Determines whether a type can be used on both sides of operator &, | and ^ expressions |
Rlogically_combinable_r | Determines whether a type can be used on both sides of operator &, | and ^ expressions and if the return type is convertible to the expected one |
Rlogically_assignable_with | Determines whether two types can be used in operator &=, |= and ^= expressions |
Rlogically_assignable_with_r | Determines whether two types can be used in operator &=, |= and ^= expressions and if the return type is convertible to the expected one |
Rlogically_assignable | Determines whether a type can be used on both sides of operator &=, |= and ^= expressions |
Rlogically_assignable_r | Determines whether a type can be used on both sides of operator &=, |= and ^= expressions and if the return type is convertible to the expected one |
Rfully_logical_with | Determines whether two types can be used in operator &, |, ^, &=, |=, ^= and ~ expressions |
Rfully_logical_with_r | Determines whether two types can be used in operator &, |, ^, &=, |=, ^= and ~ expressions and if the return types are convertible to the expected ones |
Rfully_logical | Determines whether a type can be used on both sides of operator &, |, ^, &=, |=, ^= and ~ expressions |
Rfully_logical_r | Determines whether a type can be used on both sides of operator &, |, ^, &=, |=, ^= and ~ expressions and if the return types are convertible to the expected ones |
Rinvertible | |
Rinvertible_r | |
Rdereferencable | Determines whether a type can be used in unary operator * expressions |
Rdereferencable_r | Determines whether a type can be used in unary operator * expressions and if the return type is convertible to the expected one |
Rarrow_dereferencable | Determines whether a type can be used in operator -> expressions |
Rarrow_dereferencable_r | Determines whether a type can be used in operator -> expressions and if the return type is convertible to the expected one |
Rindex_dereferencable | Determines whether a type can be used in operator [] expressions |
Rindex_dereferencable_r | Determines whether a type can be used in operator -> expressions and if the return type is convertible to the expected one |
Rnegate | Determines whether a type can be used in operator - expression |
Rnegate_r | Determines whether a type can be used in operator - expression and if the return type is convertible to the expected one |
Rplus_with | Determines whether two types can be used in operator + expressions |
Rplus_with_r | Determines whether two types can be used in operator + expressions and if the return type is convertible to the expected one |
Rplus | Determines whether a type can be used on both sides of operator + expressions |
Rplus_r | Determines whether a type can be used on both sides of operator + expressions and if the return type is convertible to the expected one |
Rplus_assign_with | Determines whether two types can be used in operator += expressions |
Rplus_assign_with_r | Determines whether two types can be used in operator += expressions and if the return type is convertible to the expected one |
Rplus_assign | Determines whether a type can be used on both sides of operator += expressions |
Rplus_assign_r | Determines whether a type can be used on both sides of operator += expressions and if the return type is convertible to the expected one |
Rminus_with | Determines whether two types can be used in operator - expressions |
Rminus_with_r | Determines whether two types can be used in operator - expressions and if the return type is convertible to the expected one |
Rminus | Determines whether a type can be used on both sides of operator - expressions |
Rminus_r | Determines whether a type can be used on both sides of operator - expressions and if the return type is convertible to the expected one |
Rminus_assign_with | Determines whether two types can be used in operator -= expressions |
Rminus_assign_with_r | Determines whether two types can be used in operator -= expressions and if the return type is convertible to the expected one |
Rminus_assign | Determines whether a type can be used on both sides of operator -= expressions |
Rminus_assign_r | Determines whether a type can be used on both sides of operator -= expressions and if the return type is convertible to the expected one |
Rmultiplies_with | Determines whether two types can be used in operator * expressions |
Rmultiplies_with_r | Determines whether two types can be used in operator * expressions and if the return type is convertible to the expected one |
Rmultiplies | Determines whether a type can be used on both sides of operator * expressions |
Rmultiplies_r | Determines whether a type can be used on both sides of operator * expressions and if the return type is convertible to the expected one |
Rmultiplies_assign_with | Determines whether two types can be used in operator *= expressions |
Rmultiplies_assign_with_r | Determines whether two types can be used in operator *= expressions and if the return type is convertible to the expected one |
Rmultiplies_assign | Determines whether a type can be used on both sides of operator *= expressions |
Rmultiplies_assign_r | Determines whether a type can be used on both sides of operator *= expressions and if the return type is convertible to the expected one |
Rdivides_with | Determines whether two types can be used in operator / expressions |
Rdivides_with_r | Determines whether two types can be used in operator / expressions and if the return type is convertible to the expected one |
Rdivides | Determines whether a type can be used on both sides of operator / expressions |
Rdivides_r | Determines whether a type can be used on both sides of operator / expressions and if the return type is convertible to the expected one |
Rdivides_assign_with | Determines whether two types can be used in operator /= expressions |
Rdivides_assign_with_r | Determines whether two types can be used in operator /= expressions and if the return type is convertible to the expected one |
Rdivides_assign | Determines whether a type can be used on both sides of operator /= expressions |
Rdivides_assign_r | Determines whether a type can be used on both sides of operator /= expressions and if the return type is convertible to the expected one |
Rmodulus_with | Determines whether two types can be used in operator % expressions |
Rmodulus_with_r | Determines whether two types can be used in operator % expressions and if the return type is convertible to the expected one |
Rmodulus | Determines whether a type can be used on both sides of operator % expressions |
Rmodulus_r | Determines whether a type can be used on both sides of operator % expressions and if the return type is convertible to the expected one |
Rmodulus_assign_with | Determines whether two types can be used in operator %= expressions |
Rmodulus_assign_with_r | Determines whether two types can be used in operator %= expressions and if the return type is convertible to the expected one |
Rmodulus_assign | Determines whether a type can be used on both sides of operator %= expressions |
Rmodulus_assign_r | Determines whether a type can be used on both sides of operator %= expressions and if the return type is convertible to the expected one |
Rarithmetically_combinable_with | Determines whether two types can be used in operator +, -, * and / expressions |
Rarithmetically_combinable_with_r | Determines whether two types can be used in operator +, -, * and / expressions and if the return type is convertible to the expected one |
Rarithmetically_combinable | Determines whether a type can be used on both sides of operator +, -, * and / expressions |
Rarithmetically_combinable_r | Determines whether a type can be used on both sides of operator +, -, * and / expressions and if the return type is convertible to the expected one |
Rarithmetically_assignable_with | Determines whether two types can be used in operator +=, -=, *= and /= expressions |
Rarithmetically_assignable_with_r | Determines whether two types can be used in operator +=, -=, *= and /= expressions and if the return type is convertible to the expected one |
Rarithmetically_assignable | Determines whether a type can be used on both sides of operator +=, -=, *= and /= expressions |
Rarithmetically_assignable_r | Determines whether a type can be used on both sides of operator +=, -=, *= and /= expressions and if the return type is convertible to the expected one |
Rfully_arithmetical_with | Determines whether two types can be used in operator +, -, *, /, +=, -=, *=, /= and unary - expressions |
Rfully_arithmetical_with_r | Determines whether two types can be used in operator +, -, *, /, +=, -=, *=, /= and unary - expressions and if the return types are convertible to the expected ones |
Rfully_arithmetical | Determines whether a type can be used on both sides of operator +, -, *, /, +=, -=, *=, /= and unary - expressions |
Rfully_arithmetical_r | Determines whether a type can be used on both sides of operator +, -, *, /, +=, -=, *=, /= and unary - expressions and if the return types are convertible to the expected ones |
Rpointer | Checks whether the T denotes a (possibly cv-qualified) pointer type |
Rreference | Checks whether the T denotes a reference type |
Rdecayed | Checks whether the T denotes a decayed type |
Runqualified | Checks whether the T denotes an unqualified type |
Rnot_same_as | Checks whether the left-hand-side type is unequal to the right-hand-side type |
Rinitializes | Checks whether the target type is constructible from the source type |
Rassignable_to | Checks whether the target type is assignable from the source type |
Rweakly_equality_comparable | Checks whether the given type is comparable via operator == and != |
Rnothrow_weakly_equality_comparable | Checks whether the given type is comparable via operator == and != and has noexcept specifier |
Rweakly_equality_comparable_with | Checks whether a symmetrical set of operators == and != to compare both types with each other exists |
Rnothrow_weakly_equality_comparable_with | Checks whether a symmetrical set of operators == and != to compare both types with each other exists and has noexcept specifier |
Rcomparison_category | Checks whether the given type denotes a common stl comparison category |
Rexplicitly_convertible_to | Checks whether a type is explicit convertible to another |
Rnothrow_explicitly_convertible_to | Checks whether a type is explicit convertible to another and does not throw |
Rweakly_three_way_comparable | Checks whether the given type is comparable <=> with the minimal comparison category. This also implies equality comparable |
Rnothrow_weakly_three_way_comparable | Checks whether the given type is comparable <=> with the minimal comparison category and noexcept specifier. This also implies equality comparable |
Rweakly_three_way_comparable_with | Checks whether a symmetrical set of operator <=> to compare both types with each other exists |
Rnothrow_weakly_three_way_comparable_with | Checks whether a symmetrical set of operator <=> to compare both types with each other with noexcept specifier exists |
Runique_types | Checks whether each given type appears only once in the template argument pack |
Rtuple | Determines whether a type can be used as a tuple-like |
Rapplicable | Determines whether the function is invocable with the elements of the given tuple |
Rnothrow_applicable | Determines whether the function is invocable with the elements of the given tuple without throwing |
Rtype_list | Determines whether a type satisfies the requirements of a type-list |
Rpopulated_type_list | Determines whether a type is a type-list and contains elements |
►Nfunctional | |
Narithmetic | |
Ncompare | |
Ntuple | |
Nutil | |
CBasicClosure | The core class, wrapping one functional object and enabling a variety of composing operators for it |
Cclosure_template | Primary template, purposely undefined |
Cclosure_template< BasicClosure< Fn, InvokePolicy, OperatorPolicies... > > | Specialization, providing the closure template as member alias |
CComposition | Functional type, composing multiple other functional types via the provided strategy |
CConjunctionOperator | |
CConjunctionStrategy | |
CDisjunctionOperator | |
CDisjunctionStrategy | |
CEqualityOperator | |
CEqualityStrategy | |
Cis_composition | Primary template, yielding false type |
Cis_composition< Composition< CompositionStrategy, Fns... > > | Specialization for Composition |
CNegationOperator | |
COverloaded | Helper invocable type which can hold an arbitrary amount of functions, from which the best match will be selected during invocation |
CPipeOperator | |
CPipeStrategy | |
Cunwrap_functional | Primary template for non BasicClosure types |
Cunwrap_functional< BasicClosure< Fn, InvokePolicy, OperatorPolicies... > & > | Specialization for lvalue-references of BasicClosure class |
Cunwrap_functional< BasicClosure< Fn, InvokePolicy, OperatorPolicies... > && > | Specialization for rvalue-references of BasicClosure class |
Cunwrap_functional< const BasicClosure< Fn, InvokePolicy, OperatorPolicies... > & > | Specialization for const lvalue-references of BasicClosure class |
Cunwrap_functional< const BasicClosure< Fn, InvokePolicy, OperatorPolicies... > && > | Specialization for const rvalue-references of BasicClosure class |
Rfunction | Determines whether the given type satisfies the constraints of a function type |
Rinvoke_policy | Determines whether the given type satisfies the constraints of an invoke-policy |
Roperator_policy | Determines whether the given type satisfies the constraints of a operator-policy |
Rcomposition_strategy | Determines whether the given type satisfies the requirements of a composition strategy |
►Nmath | |
Cfrexp_result | Result type for the frexp operation |
Cmodf_result | Result type for the modf operation |
Cremquo_result | Result type for the remquo operation |
►Nnullables | |
Cadapter | A adapter class, mimic the behaviour of nullable types |
Cadapter_null_t | Dedicated null type for adapters |
CAlgorithm | The core algorithm helper, which executes the held operation when used as the right-hand-side of operator | expressions, when the left-hand-side is a valid nullable type |
Cin_place_null_t | Tag type for adapters, which can be used to disambiguate the construction with just a null-object |
Ctraits | The main trait, which may be specialized from |
Ctraits< adapter< TNull, TAdapted > > | Specialization for raw pointers |
Ctraits< std::optional< TArgs... > > | Specialization for std::optional |
Ctraits< std::shared_ptr< TArgs... > > | Specialization for std::shared_ptr |
Ctraits< std::unique_ptr< TArgs... > > | Specialization for std::unique_ptr |
Ctraits< T > | Specialization for raw pointers |
Ctraits< unique_handle< T, TDeleteAction > > | Specialization for unique_handle types |
Radaptable_with | Determines whether the given adapted and null type satisfy the requirements to be used within a adapter |
Rinput_nullable | Checks whether a type is an input_nullable |
Rnullable | Checks whether a type is nullable |
►Ntuple | |
Capply_result | Trait type determining the result of a std::apply call |
Ccartesian_product_result | Trait type determining the result of a cartesian_product call |
Ccat_result | Trait type determining the result of a std::tuple_cat call |
Cenvelop_elements_result | Trait type determining the result of a tuple_envelop_elements call |
Czip_result | Trait type determining the result of a zip call |
►Ntype_list | |
Cappend | Primary template isn't defined on purpose |
Cappend< Container< Elements... >, Types... > | Adds the given types at the end of the source type-list |
Cback | Primary template isn't defined on purpose |
Cback< Container< Element > > | Specialization retrieving the last element of the source type-list |
Cback< Container< First, Others... > > | Specialization investigating the current element of the source type-list |
Ccartesian_product_as | Primary template isn't defined on purpose |
Ccartesian_product_as< TargetContainer, Container< Elements... > > | Root specialization, enveloping each element of the list in a TargetContainer |
Ccartesian_product_as< TargetContainer, Container< Elements... >, OtherLists... > | Specialization, prepending all elements of the current type-list to the already created type-lists |
Ccommon_container | Primary template isn't defined on purpose |
Ccommon_container< Container< Elements... > > | Unary trait defining the type member-alias |
Ccommon_container< Container< LhsElements... >, Container< RhsElements... >, Others... > | Trait reducing the amount of participating type-lists, if the first two have the container in common |
Cconcat | Primary template isn't defined on purpose |
Cconcat< LhsContainer< LhsElements... >, RhsContainer< RhsElements... >, Others... > | Specialization appending all elements of the second type-list at the back of the first type-list and repeating it for any other not yet investigated type-lists |
Cconcat< List > | Unary specialization, simply using the given type-list as result |
Ccontains | Primary template isn't defined on purpose |
Ccontains< Container< Elements... >, Query > | Specialization determining the presence of the query type, due to comparing it with each element of the type-list |
Ccount | Primary template isn't defined on purpose |
Ccount< Query, Container< Elements... > > | Specialization counting the presence of the query type, due to comparing it with each element of the type-list |
Cdifference_as | Primary template, yielding a the elements of First in the TargetContainer |
Cdifference_as< TargetContainer, First, Second > | Specialization, if the front element of Second is not contained in First |
Cequal | Primary template yields false |
Cequal< First > | Specialization for single type-list |
Cequal< FirstContainer< Elements... >, SecondContainer< Elements... >, Others... > | Specialization, determining whether the first two type-lists have equal template arguments |
Cfilter | Primary template isn't defined on purpose |
Cfilter< Container< Elements... >, Filter > | Applies the filter trait on each element of the source type-list |
Cfront | Primary template isn't defined on purpose |
Cfront< Container< First, Others... > > | Specialization retrieving the first element of the source type-list |
Cindex_of | Primary template, traversing the elements of the source type-list |
Cindex_of< List, front_t< List > > | Specialization if the queried type appears at the beginning of the type-list |
Cintersection_as | Determines the intersection between the elements of two type-lists. The order doesn't matter |
Cpopulated_from | Primary template isn't defined on purpose |
Cpopulated_from< TargetContainer, SourceContainer< Elements... > > | Specialization applying each element of the source container as template argument of the target container |
Cprepend | Primary template isn't defined on purpose |
Cprepend< Container< Elements... >, Types... > | Adds the given types at the begin of the source type-list |
Cremove | Applies the filter trait on each element of the source type-list |
Cremove_at | Primary template, traversing all elements of the given type-list |
Cremove_at< List, 0 > | Root specialization, omitting the first element from the source type-list |
Creverse | Reverses the order of all elements |
Creverse< Container<> > | Specialization for empty type-lists |
Csymmetric_difference_as | Determines which elements are in either of the source type-lists, but not in both. The order doesn't matter |
Ctail | Primary template isn't defined on purpose |
Ctail< Container< First, Others... > > | Specialization for non-empty source type-lists |
Ctail< Container<> > | Specialization for empty source type-lists |
Ctransform | Primary template isn't defined on purpose |
Ctransform< UnaryOperation, Container< Elements... > > | Specialization, which applies the UnaryOperation on each element of the given type-list |
CTypeList | A variadic template type, which's only serves as a container for an arbitrary amount of types. Neither of the given types will be actually instantiated |
Cunique | Root specialization for empty type lists |
Cunique< List > | Specialization, traversing each element of the given type-list |
Cunordered_equal | Primary template isn't defined on purpose |
Cunordered_equal< First, OtherLists... > | Specialization, determining whether the current element appears equally often in all type-lists |
Cunordered_equal< FirstContainer<>, OtherLists... > | Root specialization, determining whether all type-lists are empty |
Czip_as | Algorithm yielding the result as the type member alias |
Czip_nth_elements_as | Algorithm yielding the result as the type member alias |
Cadd_type_const | Primary template, adding const to value types |
Cadd_type_const< T & > | Specialization, unwrapping lvalue reference types |
Cadd_type_const< T && > | Specialization, unwrapping rvalue reference types |
Cadd_type_const< T * > | Specialization, unwrapping pointer types |
Cadd_type_const< T *const > | Specialization, unwrapping const pointer types |
Cadd_type_const< T *const volatile > | Specialization, unwrapping const volatile pointer types |
Cadd_type_const< T *volatile > | Specialization, unwrapping volatile pointer types |
Cadd_type_cv | Primary template, adding const and volatile to value types |
Cadd_type_volatile | Primary template, adding volatile to value types |
Cadd_type_volatile< T & > | Specialization, unwrapping lvalue reference types |
Cadd_type_volatile< T && > | Specialization, unwrapping rvalue reference types |
Cadd_type_volatile< T * > | Specialization, unwrapping pointer types |
Cadd_type_volatile< T *const > | Specialization, unwrapping const pointer types |
Cadd_type_volatile< T *const volatile > | Specialization, unwrapping const volatile pointer types |
Cadd_type_volatile< T *volatile > | Specialization, unwrapping volatile pointer types |
CCRTPBase | Utility type, which can be used as a base class for the crtp pattern |
Ccv_qualified_type | Primary template, taking the T as-is |
Ccv_qualified_type< T > | Specialization, unwrapping reference types |
Cdefault_delete_action | Default delete action for unique_handle with an empty operator () |
Cnullhandle_t | Helper type for indicating unique_handles with uninitialized state |
Cqualified_category_as | |
Cremove_type_const | Primary template, removing const from value types |
Cremove_type_const< T & > | Specialization, unwrapping lvalue reference types |
Cremove_type_const< T && > | Specialization, unwrapping rvalue reference types |
Cremove_type_const< T * > | Specialization, unwrapping pointer types |
Cremove_type_const< T *const > | Specialization, unwrapping const pointer types |
Cremove_type_const< T *const volatile > | Specialization, unwrapping const volatile pointer types |
Cremove_type_const< T *volatile > | Specialization, unwrapping volatile pointer types |
Cremove_type_cv | Primary template, removing const and volatile from value types |
Cremove_type_volatile | Primary template, removing volatile from value types |
Cremove_type_volatile< T & > | Specialization, unwrapping lvalue reference types |
Cremove_type_volatile< T && > | Specialization, unwrapping rvalue reference types |
Cremove_type_volatile< T * > | Specialization, unwrapping pointer types |
Cremove_type_volatile< T *const > | Specialization, unwrapping const pointer types |
Cremove_type_volatile< T *const volatile > | Specialization, unwrapping const volatile pointer types |
Cremove_type_volatile< T *volatile > | Specialization, unwrapping volatile pointer types |
Ctype_constness_as | Applies or removes the const qualification of To in regards of From |
Ctype_qualification_as | Applies or removes the const and/or volatile qualifications of To in regards of From |
Ctype_volatileness_as | Applies or removes the volatile qualification of To in regards of From |
Cunified_base | Helper type, which can be used to create a unified base class for templated derived classes and thus getting an straight-forward way of disambiguing binary operators |
Cunique_handle | This type models some kind of std::optional behaviour but resets itself on move operations |
Cvalue_category_as | Primary template, removing any reference category |
Cvalue_category_as< To, From & > | Specialization, applying the lvalue reference category |
Cvalue_category_as< To, From && > | Specialization, applying the rvalue reference category |
Rderived_from_unified_base | Determines whether T is derived of unified_base with the provided tag type |
Rvalue | Checks whether the given template type is usable as value type for unique_handle types |
Rdelete_action_for | Checks whether the given template type is usable as delete action type for unique_handle types |