aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Kummerlaender2015-02-24 16:51:37 +0100
committerAdrian Kummerlaender2015-02-24 16:51:37 +0100
commita3a0d6a1fa880b324576bb073637e021c57b0e65 (patch)
tree7015c994acff2c02c71d7ef3aaa6cc5a6cb4ec11
parent0dde43edac6817c3f0a237d25c2054c0ee75926c (diff)
Replaced `utility::defer_eval` with placeholder-less `Apply`
* usage of `Apply` sans placeholders was already possible and as such duplicated `utility::defer_eval` * renamed `apply_none`'s type alias from to `type` to enable combining it with `Eval`
-rw-r--r--example/turing/src/tape.h3
-rw-r--r--src/function/detail/apply.h2
-rw-r--r--src/utility/predicate.h11
-rw-r--r--test.cc2
4 files changed, 6 insertions, 12 deletions
diff --git a/example/turing/src/tape.h b/example/turing/src/tape.h
index 4f79bd9..94c9536 100644
--- a/example/turing/src/tape.h
+++ b/example/turing/src/tape.h
@@ -5,6 +5,7 @@
#include "list/list.h"
#include "list/operation/replace_nth.h"
#include "conditional/if.h"
+#include "function/apply.h"
namespace machine {
@@ -26,7 +27,7 @@ template <
>
using readSymbol = tav::Eval<tav::If<
tav::LowerThan<Position, tav::Length<Tape>>,
- tav::utility::defer_eval<tav::Nth, Position, Tape>,
+ tav::Apply<tav::Nth, Position, Tape>,
BLANK
>>;
diff --git a/src/function/detail/apply.h b/src/function/detail/apply.h
index 2f4c782..c06fe68 100644
--- a/src/function/detail/apply.h
+++ b/src/function/detail/apply.h
@@ -12,7 +12,7 @@ template <
typename... Arguments
>
struct apply_none {
- using function = Function<Arguments...>;
+ using type = Function<Arguments...>;
};
template <
diff --git a/src/utility/predicate.h b/src/utility/predicate.h
index e84b18f..b185759 100644
--- a/src/utility/predicate.h
+++ b/src/utility/predicate.h
@@ -3,6 +3,7 @@
#include "conditional/if.h"
#include "operation/logic.h"
+#include "function/apply.h"
namespace tav {
@@ -22,14 +23,6 @@ struct predicate_assurance {
};
template <
- template<typename...> class Function,
- typename... Arguments
->
-struct defer_eval {
- typedef Function<Arguments...> type;
-};
-
-template <
template<typename> class Predicate,
template<typename> class Charge,
typename Surrogate
@@ -38,7 +31,7 @@ struct predicate_guard {
template <typename Value>
using check = Eval<If<
Eval<Predicate<Value>>,
- defer_eval<Charge, Value>,
+ Apply<Charge, Value>,
Surrogate
>>;
};
diff --git a/test.cc b/test.cc
index 44c0f6f..525afcf 100644
--- a/test.cc
+++ b/test.cc
@@ -1146,7 +1146,7 @@ static_assert(
tav::Multiply,
tav::Int<21>,
tav::Int<2>
- >::function::type
+ >::type
>::value,
"(* 21 2) != 42"
);