aboutsummaryrefslogtreecommitdiff
path: root/src/list/cons.h
diff options
context:
space:
mode:
authorAdrian Kummerlaender2015-02-15 22:37:06 +0100
committerAdrian Kummerlaender2015-02-15 22:37:06 +0100
commita59df7e8c4fd1f88bc1078ebcfde944502b0c309 (patch)
tree5e5ecdf040a8b5fdebff55ec489a03ffea38501f /src/list/cons.h
parent8e49cc6f8f2186ef028bfa765fd06e52ce5218c5 (diff)
downloadTypeAsValue-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.h28
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;
}