From 559836cda14cb96066a3604910131eaa0d3f451c Mon Sep 17 00:00:00 2001 From: yhirose Date: Fri, 11 Jan 2019 18:20:04 -0500 Subject: [PATCH] Removed enabler --- peglib.h | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/peglib.h b/peglib.h index f8d5b62..2b2709a 100644 --- a/peglib.h +++ b/peglib.h @@ -41,12 +41,6 @@ namespace peg { -#if __clang__ == 1 && __clang_major__ <= 5 -static void* enabler = nullptr; // workaround for Clang version <= 5.0.0 -#else -extern void* enabler; -#endif - /*----------------------------------------------------------------------------- * any *---------------------------------------------------------------------------*/ @@ -96,7 +90,7 @@ public: template < typename T, - typename std::enable_if::value>::type*& = enabler + typename std::enable_if::value, std::nullptr_t>::type = nullptr > T& get() { if (!content_) { @@ -112,7 +106,7 @@ public: template < typename T, - typename std::enable_if::value>::type*& = enabler + typename std::enable_if::value, std::nullptr_t>::type = nullptr > T& get() { return *this; @@ -120,7 +114,7 @@ public: template < typename T, - typename std::enable_if::value>::type*& = enabler + typename std::enable_if::value, std::nullptr_t>::type = nullptr > const T& get() const { assert(content_); @@ -134,7 +128,7 @@ public: template < typename T, - typename std::enable_if::value>::type*& = enabler + typename std::enable_if::value, std::nullptr_t>::type = nullptr > const any& get() const { return *this; @@ -555,7 +549,7 @@ private: */ template < typename R, typename F, - typename std::enable_if::value>::type*& = enabler, + typename std::enable_if::value, std::nullptr_t>::type = nullptr, typename... Args> any call(F fn, Args&&... args) { fn(std::forward(args)...); @@ -564,7 +558,7 @@ any call(F fn, Args&&... args) { template < typename R, typename F, - typename std::enable_if::type, any>::value>::type*& = enabler, + typename std::enable_if::type, any>::value, std::nullptr_t>::type = nullptr, typename... Args> any call(F fn, Args&&... args) { return fn(std::forward(args)...); @@ -574,7 +568,7 @@ template < typename R, typename F, typename std::enable_if< !std::is_void::value && - !std::is_same::type, any>::value>::type*& = enabler, + !std::is_same::type, any>::value, std::nullptr_t>::type = nullptr, typename... Args> any call(F fn, Args&&... args) { return any(fn(std::forward(args)...)); @@ -587,26 +581,26 @@ public: Action(const Action& rhs) : fn_(rhs.fn_) {} - template ::value && !std::is_same::value>::type*& = enabler> + template ::value && !std::is_same::value, std::nullptr_t>::type = nullptr> Action(F fn) : fn_(make_adaptor(fn, &F::operator())) {} - template ::value>::type*& = enabler> + template ::value, std::nullptr_t>::type = nullptr> Action(F fn) : fn_(make_adaptor(fn, fn)) {} - template ::value>::type*& = enabler> + template ::value, std::nullptr_t>::type = nullptr> Action(F /*fn*/) {} - template ::value && !std::is_same::value>::type*& = enabler> + template ::value && !std::is_same::value, std::nullptr_t>::type = nullptr> void operator=(F fn) { fn_ = make_adaptor(fn, &F::operator()); } - template ::value>::type*& = enabler> + template ::value, std::nullptr_t>::type = nullptr> void operator=(F fn) { fn_ = make_adaptor(fn, fn); } - template ::value>::type*& = enabler> + template ::value, std::nullptr_t>::type = nullptr> void operator=(F /*fn*/) {} Action& operator=(const Action& rhs) = default;