| ▼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 |