diff options
author | Adrian Kummerlaender | 2015-02-19 19:18:48 +0100 |
---|---|---|
committer | Adrian Kummerlaender | 2015-02-19 19:18:48 +0100 |
commit | a07999f7436802f15fc21bebd083006c9e681638 (patch) | |
tree | 0292012d7f0cc721e6f4a33a7253dbd3373ea551 /src | |
parent | 1528d3cc919031d04a2d140a35d9b4cff6633eba (diff) | |
download | TypeAsValue-a07999f7436802f15fc21bebd083006c9e681638.tar TypeAsValue-a07999f7436802f15fc21bebd083006c9e681638.tar.gz TypeAsValue-a07999f7436802f15fc21bebd083006c9e681638.tar.bz2 TypeAsValue-a07999f7436802f15fc21bebd083006c9e681638.tar.lz TypeAsValue-a07999f7436802f15fc21bebd083006c9e681638.tar.xz TypeAsValue-a07999f7436802f15fc21bebd083006c9e681638.tar.zst TypeAsValue-a07999f7436802f15fc21bebd083006c9e681638.zip |
Introduced `Branch` and `Else` pair aliases for usage in `Cond`
* pure _syntax sugar_ to improve readability of `Cond` conditionals
Diffstat (limited to 'src')
-rw-r--r-- | src/conditional/cond.h | 9 | ||||
-rw-r--r-- | src/function/apply.h | 9 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/conditional/cond.h b/src/conditional/cond.h index c543449..5f8014f 100644 --- a/src/conditional/cond.h +++ b/src/conditional/cond.h @@ -19,6 +19,15 @@ using Cond = Cdr<Eval< detail::find_variadic<detail::cond_predicate, Branches...> >>; +template < + typename Condition, + typename Result +> +using Branch = Pair<Condition, Result>; + +template <typename Result> +using Else = Branch<Boolean<true>, Result>; + } #endif // TYPEASVALUE_SRC_CONDITIONAL_COND_H_ diff --git a/src/function/apply.h b/src/function/apply.h index 591fa8a..553ae7f 100644 --- a/src/function/apply.h +++ b/src/function/apply.h @@ -18,20 +18,19 @@ template < typename... Arguments > struct Apply : Cond< - Pair< + Branch< GreaterThan<detail::count_placeholders<Arguments...>, Size<2>>, detail::apply_variadic<Function, Arguments...> >, - Pair< + Branch< IsEqualValue<detail::count_placeholders<Arguments...>, Size<2>>, detail::apply_pair<Function, Arguments...> >, - Pair< + Branch< IsEqualValue<detail::count_placeholders<Arguments...>, Size<1>>, detail::apply_single<Function, Arguments...> >, - Pair< - Boolean<true>, + Else< detail::apply_none<Function, Arguments...> > > { }; |