From e4eb628cb7e2acaa2fa382e02769197df1c11234 Mon Sep 17 00:00:00 2001 From: Paul Date: Thu, 21 May 2015 11:26:17 -0500 Subject: [PATCH] Some code simplification --- fit/function.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/fit/function.h b/fit/function.h index efa22a1..80b1f55 100644 --- a/fit/function.h +++ b/fit/function.h @@ -102,9 +102,10 @@ struct reveal_static_function_wrapper_factor } #else template - constexpr const reveal_adaptor>& operator += (F*) + constexpr const reveal_adaptor& operator += (F*) { - return FIT_CONST_FOLD(reinterpret_cast>&>(static_const::value)); + static_assert(std::is_empty::value, "Function or lambda expression must be empty"); + return FIT_CONST_FOLD(reinterpret_cast&>(static_const::value)); } #endif }; @@ -129,7 +130,8 @@ struct static_addr #define FIT_DETAIL_MAKE_STATIC fit::detail::static_function_wrapper_factor() += true ? nullptr : fit::detail::static_addr() #define FIT_DETAIL_MAKE_REVEAL_STATIC(T) fit::detail::reveal_static_function_wrapper_factor() += true ? nullptr : fit::detail::static_addr() #define FIT_STATIC_FUNCTION(name) \ -struct fit_private_static_function_ ## name {}; static constexpr auto FIT_STATIC_CONST_REF name = FIT_DETAIL_MAKE_REVEAL_STATIC(fit_private_static_function_ ## name) +struct fit_private_static_function_ ## name {}; \ +static constexpr auto FIT_STATIC_CONST_REF name = FIT_DETAIL_MAKE_REVEAL_STATIC(fit_private_static_function_ ## name) #endif