aboutsummaryrefslogtreecommitdiff
path: root/src/type.h
diff options
context:
space:
mode:
authorAdrian Kummerlaender2015-02-14 10:43:49 +0100
committerAdrian Kummerlaender2015-02-14 10:43:49 +0100
commite24f25ada7e8f48dc35cb235e045a4324bccb4f2 (patch)
tree3b6c409c7d336557163dcb25e4b11fdef82a3a79 /src/type.h
parent73680466149c7aad21de558b7acc11dfa05183d2 (diff)
downloadTypeAsValue-e24f25ada7e8f48dc35cb235e045a4324bccb4f2.tar
TypeAsValue-e24f25ada7e8f48dc35cb235e045a4324bccb4f2.tar.gz
TypeAsValue-e24f25ada7e8f48dc35cb235e045a4324bccb4f2.tar.bz2
TypeAsValue-e24f25ada7e8f48dc35cb235e045a4324bccb4f2.tar.lz
TypeAsValue-e24f25ada7e8f48dc35cb235e045a4324bccb4f2.tar.xz
TypeAsValue-e24f25ada7e8f48dc35cb235e045a4324bccb4f2.tar.zst
TypeAsValue-e24f25ada7e8f48dc35cb235e045a4324bccb4f2.zip
Introduced `Eval` function evaluation helper
* replaces `typename *::type` constructs with `Eval` applications * aims to further unify function evaluation
Diffstat (limited to 'src/type.h')
-rw-r--r--src/type.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/type.h b/src/type.h
index 15ba2f8..508e22f 100644
--- a/src/type.h
+++ b/src/type.h
@@ -17,14 +17,17 @@ using Boolean = std::integral_constant<bool, Value>;
template <char Value>
using Char = std::integral_constant<char, Value>;
+template <typename Function>
+using Eval = typename Function::type;
+
template <
typename X,
typename Y
>
-using IsEqualType = typename std::is_same<
+using IsEqualType = Eval<std::is_same<
typename X::value_type,
typename Y::value_type
->::type;
+>>;
template <
typename X,