Age | Commit message (Collapse) | Author |
|
* analogously to arbitrary list count concatenation in Scheme's `append`
** implemented for `Concatenate` instead as it fits better with the structure between `Append` and `Concatenate`
|
|
* improves error messages in case no branch condition resolves to `true`
|
|
* pure _syntax sugar_ to improve readability of `Cond` conditionals
|
|
|
|
* `ListIndex` already implements the necessary partial template specializations for finding elements matching a predicate
* reimplemented `Cond` using `detail::find_variadic` as `Find` depends on `Apply` which in turn depends on `Cond`
** it is useful if core functionality such as the branched conditional `Cond` do not require higher order functionality such as `Find`
*** otherwise one can not use core functionality in the implementation of higher order functionality
* introduced `utility::predicate_guard` helper template
** checks a given value using a predicate and only forwards the value to the guarded function if this check is successful
** if check is unsuccessful it returns a surrogate value simmilar to `utility::predicate_assurance`
|
|
* continuation of 8e49cc6f8f
|
|
* while class templates enable e.g. hiding implementation details they also require evaluation via `Eval`
** this clutters up the actual logic and is now hidden behind aliae that perform the evaluation
|
|
* replaces `typename *::type` constructs with `Eval` applications
* aims to further unify function evaluation
|
|
* returns the `CDR` of the first true `CAR` in a given list of pairs
* reimplemented `Apply` base class selection in terms of `Cond`
|
|
* all other functions sans `Cons` are resolved when the respective member `*::type` is instantiated
* this was changed soely to increase coherence
|
|
* as its name implies this function returns the length of a given _Cons_ structure
* result type is `Size<Length>` which wraps `std::size_t` to match the `sizeof` operator
|
|
|