diff options
author | Adrian Kummerlaender | 2015-03-07 16:14:11 +0100 |
---|---|---|
committer | Adrian Kummerlaender | 2015-03-07 16:14:11 +0100 |
commit | cb2a79cd818fbfa50e7bdebd090e681a0073f9d5 (patch) | |
tree | 70c5a90977ae0772618be00dfb499eb5ee4cf63f /src/function | |
parent | 299781bccc5c7d1b212198b5a9a55ee9447603c5 (diff) | |
download | TypeAsValue-cb2a79cd818fbfa50e7bdebd090e681a0073f9d5.tar TypeAsValue-cb2a79cd818fbfa50e7bdebd090e681a0073f9d5.tar.gz TypeAsValue-cb2a79cd818fbfa50e7bdebd090e681a0073f9d5.tar.bz2 TypeAsValue-cb2a79cd818fbfa50e7bdebd090e681a0073f9d5.tar.lz TypeAsValue-cb2a79cd818fbfa50e7bdebd090e681a0073f9d5.tar.xz TypeAsValue-cb2a79cd818fbfa50e7bdebd090e681a0073f9d5.tar.zst TypeAsValue-cb2a79cd818fbfa50e7bdebd090e681a0073f9d5.zip |
Changed `tav::Apply` implementation selection to template alias
* there is no reason to differ from the rest of the library and use inheritance in this instance
* added link to blog article on the _Scheme metaphor_ to `README.md`
Diffstat (limited to 'src/function')
-rw-r--r-- | src/function/apply.h | 4 | ||||
-rw-r--r-- | src/function/detail/apply.h | 4 | ||||
-rw-r--r-- | src/function/detail/placeholder.h | 6 |
3 files changed, 7 insertions, 7 deletions
diff --git a/src/function/apply.h b/src/function/apply.h index 553ae7f..402b654 100644 --- a/src/function/apply.h +++ b/src/function/apply.h @@ -17,7 +17,7 @@ template < template<typename...> class Function, typename... Arguments > -struct Apply : Cond< +using Apply = Cond< Branch< GreaterThan<detail::count_placeholders<Arguments...>, Size<2>>, detail::apply_variadic<Function, Arguments...> @@ -33,7 +33,7 @@ struct Apply : Cond< Else< detail::apply_none<Function, Arguments...> > -> { }; +>; } diff --git a/src/function/detail/apply.h b/src/function/detail/apply.h index c06fe68..4b550e6 100644 --- a/src/function/detail/apply.h +++ b/src/function/detail/apply.h @@ -33,7 +33,7 @@ template < template<typename...> class Function, typename... Arguments > -struct apply_single : apply_variadic<Function, Arguments...> { +struct apply_single { template <typename Partial0> using function = typename apply_variadic< Function, @@ -45,7 +45,7 @@ template < template<typename...> class Function, typename... Arguments > -struct apply_pair : apply_variadic<Function, Arguments...> { +struct apply_pair { template <typename Partial0, typename Partial1> using function = typename apply_variadic< Function, diff --git a/src/function/detail/placeholder.h b/src/function/detail/placeholder.h index 8105de5..00818b7 100644 --- a/src/function/detail/placeholder.h +++ b/src/function/detail/placeholder.h @@ -13,7 +13,7 @@ namespace detail { struct placeholder_tag { }; -template <int Index> +template <std::size_t Index> struct placeholder : placeholder_tag { }; template <typename Type> @@ -28,8 +28,8 @@ struct resolve_placeholder { }; template < - typename Partials, - int Index + typename Partials, + std::size_t Index > struct resolve_placeholder<Partials, placeholder<Index>> { typedef Nth<Size<Index>, Partials> type; |