From 0a355636b256eec3c0416c5e18f6dd151010de13 Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Sat, 18 Nov 2023 15:07:46 +0000 Subject: [PATCH] Cleanup ZNC_LVREFQUAL --- include/znc/Message.h | 21 ++++----------------- 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/include/znc/Message.h b/include/znc/Message.h index 0b6d374f..de54dc52 100644 --- a/include/znc/Message.h +++ b/include/znc/Message.h @@ -17,19 +17,6 @@ #ifndef ZNC_MESSAGE_H #define ZNC_MESSAGE_H -// Remove this after Feb 2016 when Debian 7 is EOL -#if __cpp_ref_qualifiers >= 200710 -#define ZNC_LVREFQUAL & -#elif defined(__clang__) -#define ZNC_LVREFQUAL & -#elif __GNUC__ > 4 || \ - __GNUC__ == 4 && (__GNUC_MINOR__ > 8 || \ - __GNUC_MINOR__ == 8 && __GNUC_PATCHLEVEL__ >= 1) -#define ZNC_LVREFQUAL & -#else -#define ZNC_LVREFQUAL -#endif - #ifdef SWIG #define ZNC_MSG_DEPRECATED(msg) #else @@ -166,7 +153,7 @@ class CMessage { // Implicit and explicit conversion to a subclass reference. #ifndef SWIG template - M& As() ZNC_LVREFQUAL { + M& As() & { static_assert(std::is_base_of{}, "Must be subclass of CMessage"); static_assert(sizeof(M) == sizeof(CMessage), @@ -175,7 +162,7 @@ class CMessage { } template - const M& As() const ZNC_LVREFQUAL { + const M& As() const& { static_assert(std::is_base_of{}, "Must be subclass of CMessage"); static_assert(sizeof(M) == sizeof(CMessage), @@ -185,12 +172,12 @@ class CMessage { template {}>::type> - operator M&() ZNC_LVREFQUAL { + operator M&() & { return As(); } template {}>::type> - operator const M&() const ZNC_LVREFQUAL { + operator const M&() const& { return As(); } // REGISTER_ZNC_MESSAGE allows SWIG to instantiate correct .As<> calls.