diff options
Diffstat (limited to 'src/list/list.h')
-rw-r--r-- | src/list/list.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/list/list.h b/src/list/list.h index 658ac31..e369739 100644 --- a/src/list/list.h +++ b/src/list/list.h @@ -10,25 +10,25 @@ template < typename... Tail > struct List { - typedef typename Cons< + typedef Eval<Cons< Head, - typename List<Tail...>::type - >::type type; + Eval<List<Tail...>> + >> type; }; template <typename Head> struct List<Head> { - typedef typename Cons<Head, void>::type type; + typedef Eval<Cons<Head, void>> type; }; template <typename Head> struct List<Head, void> { - typedef typename List<Head>::type type; + typedef Eval<List<Head>> type; }; template <typename... Tail> struct List<void, Tail...> { - typedef typename List<Tail...>::type type; + typedef Eval<List<Tail...>> type; }; template <> @@ -45,10 +45,10 @@ using ListOfType = List< >; template <typename Cons> -using Head = typename Car<Cons>::type; +using Head = Eval<Car<Cons>>; template <typename Cons> -using Tail = typename Cdr<Cons>::type; +using Tail = Eval<Cdr<Cons>>; } |