From e24f25ada7e8f48dc35cb235e045a4324bccb4f2 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Sat, 14 Feb 2015 10:43:49 +0100 Subject: Introduced `Eval` function evaluation helper * replaces `typename *::type` constructs with `Eval` applications * aims to further unify function evaluation --- src/function/apply.h | 6 +++--- src/function/detail/apply.h | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'src/function') diff --git a/src/function/apply.h b/src/function/apply.h index 5a2105c..f4de292 100644 --- a/src/function/apply.h +++ b/src/function/apply.h @@ -19,15 +19,15 @@ template < > struct Apply : Cond< Pair< - GreaterThan<typename detail::count_placeholders<Arguments...>::type, Size<2>>, + GreaterThan<Eval<detail::count_placeholders<Arguments...>>, Size<2>>, detail::apply_variadic<Function, Arguments...> >, Pair< - IsEqualValue<typename detail::count_placeholders<Arguments...>::type, Size<2>>, + IsEqualValue<Eval<detail::count_placeholders<Arguments...>>, Size<2>>, detail::apply_pair<Function, Arguments...> >, Pair< - IsEqualValue<typename detail::count_placeholders<Arguments...>::type, Size<1>>, + IsEqualValue<Eval<detail::count_placeholders<Arguments...>>, Size<1>>, detail::apply_single<Function, Arguments...> >, Pair< diff --git a/src/function/detail/apply.h b/src/function/detail/apply.h index b4b70bf..da347f7 100644 --- a/src/function/detail/apply.h +++ b/src/function/detail/apply.h @@ -33,13 +33,13 @@ template < int Index > struct resolve_placeholder<Partials, placeholder<Index>> { - typedef typename Nth<Size<Index>, Partials>::type type; + typedef Eval<Nth<Size<Index>, Partials>> type; }; template <typename... Arguments> using count_placeholders = Count< is_placeholder, - typename List<Arguments...>::type + Eval<List<Arguments...>> >; template < @@ -57,10 +57,10 @@ template < struct apply_variadic { template <typename... Partials> using function = Function< - typename resolve_placeholder< - typename tav::List<Partials...>::type, + Eval<resolve_placeholder< + Eval<List<Partials...>>, Arguments - >::type... + >>... >; }; -- cgit v1.2.3