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