diff options
author | Adrian Kummerlaender | 2015-02-15 22:37:06 +0100 |
---|---|---|
committer | Adrian Kummerlaender | 2015-02-15 22:37:06 +0100 |
commit | a59df7e8c4fd1f88bc1078ebcfde944502b0c309 (patch) | |
tree | 5e5ecdf040a8b5fdebff55ec489a03ffea38501f /src/list/cons.h | |
parent | 8e49cc6f8f2186ef028bfa765fd06e52ce5218c5 (diff) | |
download | TypeAsValue-a59df7e8c4fd1f88bc1078ebcfde944502b0c309.tar TypeAsValue-a59df7e8c4fd1f88bc1078ebcfde944502b0c309.tar.gz TypeAsValue-a59df7e8c4fd1f88bc1078ebcfde944502b0c309.tar.bz2 TypeAsValue-a59df7e8c4fd1f88bc1078ebcfde944502b0c309.tar.lz TypeAsValue-a59df7e8c4fd1f88bc1078ebcfde944502b0c309.tar.xz TypeAsValue-a59df7e8c4fd1f88bc1078ebcfde944502b0c309.tar.zst TypeAsValue-a59df7e8c4fd1f88bc1078ebcfde944502b0c309.zip |
Simplified `Cond`, `Cons` and `Map` implementations
* continuation of 8e49cc6f8f
Diffstat (limited to 'src/list/cons.h')
-rw-r--r-- | src/list/cons.h | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/src/list/cons.h b/src/list/cons.h index 95783b2..dbd4c0b 100644 --- a/src/list/cons.h +++ b/src/list/cons.h @@ -5,30 +5,6 @@ namespace tav { -namespace detail { - -template <typename Pair> -struct Car { - static_assert( - IsPair<Pair>::value, - "Pair type required" - ); - - typedef typename Pair::car type; -}; - -template <typename Pair> -struct Cdr { - static_assert( - IsPair<Pair>::value, - "Pair type required" - ); - - typedef typename Pair::cdr type; -}; - -} - template < typename CAR, typename CDR @@ -36,10 +12,10 @@ template < using Cons = Pair<CAR, CDR>; template <typename Pair> -using Car = Eval<detail::Car<Pair>>; +using Car = typename Pair::car; template <typename Pair> -using Cdr = Eval<detail::Cdr<Pair>>; +using Cdr = typename Pair::cdr; } |