▼Nsl | |
►Nfunctional | |
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 |
►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 |
►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 |
▼Nstd | STL namespace |
Ctuple_element< index, sl::type_list::TypeList< Types... > > | Specialization of std::tuple_element for TypeList |
Ctuple_size< sl::type_list::TypeList< Types... > > | Specialization of std::tuple_size for TypeList |