From 2de440f7d607ecb9f42a59ab1c1457ae3dc697d6 Mon Sep 17 00:00:00 2001 From: John Hodge Date: Tue, 9 Aug 2016 16:00:44 +0800 Subject: Tagged Union - Fix TU_MATCHA to work --- src/include/tagged_union.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/include/tagged_union.hpp b/src/include/tagged_union.hpp index 89ba5be4..91a02c0c 100644 --- a/src/include/tagged_union.hpp +++ b/src/include/tagged_union.hpp @@ -99,7 +99,7 @@ // TODO: use `decltype` in place of the `class` argument to TU_MATCH/TU_IFLET // "match"-like statement // TU_MATCH(Class, m_data, ent, (Variant, CODE), (Variant2, CODE)) -#define TU_MATCHA(VARS, NAMES, ...) TU_MATCH( decltype( ::std::remove_reference(TU_FIRST VARS) ), VARS, NAMES, __VA_ARGS__ ) +#define TU_MATCHA(VARS, NAMES, ...) TU_MATCH( ::std::remove_reference::type, VARS, NAMES, __VA_ARGS__ ) #define TU_MATCH(CLASS, VAR, NAME, ...) switch( (TU_FIRST VAR).tag()) {/* */ case CLASS::TAGDEAD: assert(!"ERROR: destructed tagged union used");/* */ TU_MATCH_ARMS(CLASS, VAR, NAME, __VA_ARGS__)/* -- cgit v1.2.3