▼concepts | Contains concepts for different purposes |
access operators | |
arithmetic operators | Contains concepts which determines whether a type is usable in operator +, +=, -, -=, *, *=, /, /=, %, %= and unary - expressions |
logical arithmetic operators | Contains concepts which determines whether a type is usable in operator &, &=, |, |=, ^, ^= and ~ expressions |
shift operators | Contains concepts which determines whether a type is usable in operator <<, <<=, >> and >>= expressions |
stl extensions | Contains several concept extensions for existing stl concepts and traits |
utility | |
▼functional | This namespace contains helper types for complex functional chaining and concrete functional objects |
arithmetic | Contains functional objects, implementing several arithmetically operations |
closure_template | Trait type, exposing the closure template |
compare | Contains various comparision predicates |
composition | |
invoke policy | Contains several CRTP types, decorating the behavior of functional types |
predicate | Contains the Predicate closure template |
transform | Contains the Transform closure template |
tuple | Contains several tuple related Transform definitions and the Apply closure template |
unwrap_functional | Trait, unwrapping the functional type if a closure type is given, otherwise the given type |
utility | Contains functional objects, implementing several utility operations |
math | |
▼nullables | This library offers some simple algorithms for convenient working with nullable types |
adapter | |
algorithms | Contains nullable algorithm related symbols |
customization points | Contains several customization points, which users may hook for their custom types |
traits | These traits are used by the algorithms and my be specialized by users for their custom types |
▼tuple | |
▼algorithm | |
cartesian product | |
envelop elements | |
transform_elements | |
zip | |
▼stl extension | |
apply | |
cat | |
▼type-list | |
append | Adds all of given types at the end of the source type-list |
back | Defines the type member-alias containing the last element of the given type-list |
cartesian product | Given multiple source type-lists this algorithm yields a new type-list combining each element of each list with each other |
common_container | Trait determining whether some type-lists have the container type in common |
concat | Appends at the end of the first type-list all elements of the other type-lists |
contains | Queries the source type-list whether it contains a specific type |
count | Determines how often the query type appears in the source type-list |
difference | Determines which elements of the first type-list are not contained in the second type-list and yields these as the result. The order doesn't matter |
equal | Determines whether the source type-lists contain the same elements in the same order |
filter | Applies the given filter trait an each element and omits it from the resulting type-list if the filter yields false |
front | Defines the type member-alias containing the first element of the given type-list |
index_of | Queries the given type-list for a specific type |
intersection | Determines the intersection between the elements of two type-lists. The order doesn't matter |
pop back | Removes the last element of the given type-list |
pop front | Removes the first element of the given type-list |
populated_from | Applies the source type-list-elements as template arguments of the TargetContainer |
prepend | Adds all of given types at the begin of the source type-list |
remove | Removes all appearances of the given type from the source type-list |
remove_at | Removes the element at the given index |
reverse | Reverses the order of all elements |
symmetric_difference | Determines which elements are in either of the source type-lists, but not in both. The order doesn't matter |
tail | Skips the first element of the given type-list and defines a type member-alias containing the rest of the elements |
transform | Applies the given unary operation on each element of the source type-list and stores them into a new type-list |
unique | Removes all element duplicates contained by the source type-list |
unordered_equal | Determines whether the source type-lists contain the same elements |
zip | Given multiple type-lists this algorithm yields a new type-list consisting of the n type-lists (where n is the minimal size of the source type-lists) |
zip_nth_element | Given multiple type-lists and an index n (where each type-lists has at least the length n + 1 ) this algorithm yields a new type-list consisting of the n-th elements of all source type-lists |
▼type-traits | |
add_type_const | This trait adds the const qualification to the actual type, instead of the top-level reference or pointer category |
add_type_cv | This trait adds the const and volatile qualifications to the actual type, instead of the top-level reference or pointer category |
add_type_volatile | This trait adds the volatile qualification to the actual type, instead of the top-level reference or pointer category |
cv_qualified_type | This trait decays every reference or pointer category and yields the (possibly cv-qualified) underlying type |
qualified_category_as | This trait either applies any qualification and value-category from the source type on the target type |
remove_type_const | This trait removes the const qualification of the actual type, instead of the top-level reference or pointer category |
remove_type_cv | This trait removes the const and volatile qualifications from the actual type, instead of the top-level reference or pointer category |
remove_type_volatile | This trait removes the volatile qualification of the actual type, instead of the top-level reference or pointer category |
type_constness_as | This trait either applies the const qualification on the actual type of To , or removes it |
type_qualification_as | This trait either applies the const and/or volatile qualifications on the actual type of To , or removes it |
type_volatileness_as | This trait either applies the volatile qualification on the actual type of To , or removes it |
value_category_as | This trait modifies the value category (value, lvalue-reference, rvalue-reference) of the target type appropriately to the source type |
unique_handle | A helper type, which acts as a nullable resource handle with self-cleanup support |