diff --git a/lib/base/console.cpp b/lib/base/console.cpp index 7d4257c19..b9f9f3b8d 100644 --- a/lib/base/console.cpp +++ b/lib/base/console.cpp @@ -25,7 +25,8 @@ using namespace icinga; static ConsoleType l_ConsoleType = Console_Dumb; -INITIALIZE_ONCE([]() { +static void InitializeConsole(void) +{ l_ConsoleType = Console_Dumb; #ifndef _WIN32 @@ -34,7 +35,9 @@ INITIALIZE_ONCE([]() { #else /* _WIN32 */ l_ConsoleType = Console_Windows; #endif /* _WIN32 */ -}); +} + +INITIALIZE_ONCE(InitializeConsole); ConsoleColorTag::ConsoleColorTag(int color, ConsoleType consoleType) : m_Color(color), m_ConsoleType(consoleType) diff --git a/lib/base/process.cpp b/lib/base/process.cpp index f29de86fe..a2bba4d32 100644 --- a/lib/base/process.cpp +++ b/lib/base/process.cpp @@ -74,7 +74,8 @@ Process::~Process(void) #endif /* _WIN32 */ } -INITIALIZE_ONCE([]() { +static void InitializeProcess(void) +{ for (int tid = 0; tid < IOTHREADS; tid++) { #ifdef _WIN32 l_Events[tid] = CreateEvent(NULL, TRUE, FALSE, NULL); @@ -101,7 +102,9 @@ INITIALIZE_ONCE([]() { # endif /* HAVE_PIPE2 */ #endif /* _WIN32 */ } -}); +} + +INITIALIZE_ONCE(InitializeProcess); void Process::ThreadInitialize(void) { diff --git a/lib/base/string.hpp b/lib/base/string.hpp index 159fbdc1b..695f4201c 100644 --- a/lib/base/string.hpp +++ b/lib/base/string.hpp @@ -77,8 +77,13 @@ public: : m_Data(n, c) { } - String(const String& other) = default; - String(String&& other) = default; + String(const String& other) + : m_Data(other) + { } + + String(String&& other) + : m_Data(std::move(other.m_Data)) + { } inline ~String(void) { } @@ -88,8 +93,17 @@ public: : m_Data(begin, end) { } - String& operator=(const String& rhs) = default; - String& operator=(String&& rhs) = default; + String& operator=(const String& rhs) + { + m_Data = rhs.m_Data; + return *this; + } + + String& operator=(String&& rhs) + { + m_Data = std::move(rhs.m_Data); + return *this; + } inline String& operator=(const std::string& rhs) { diff --git a/lib/base/value.hpp b/lib/base/value.hpp index 60e213d4b..56fed2c40 100644 --- a/lib/base/value.hpp +++ b/lib/base/value.hpp @@ -99,16 +99,18 @@ public: : m_Value(String(value)) { } - Value(const Value& other) = default; + Value(const Value& other) + : m_Value(other.m_Value) + { } -#if BOOST_VERSION >= 105400 - Value(Value&& other) = default; -#else /* BOOST_VERSION */ Value(Value&& other) { +#if BOOST_VERSION >= 105400 + m_Value = std::move(other.m_Value); +#else /* BOOST_VERSION */ m_Value.swap(other.m_Value); - } #endif /* BOOST_VERSION */ + } inline Value(Object *value) { @@ -132,17 +134,23 @@ public: operator double(void) const; operator String(void) const; - Value& operator=(const Value& other) = default; + Value& operator=(const Value& other) + { + m_Value = other.m_Value; + return *this; + } -#if BOOST_VERSION >= 105400 - Value& operator=(Value&& other) = default; -#else /* BOOST_VERSION */ Value& operator=(Value&& other) { +#if BOOST_VERSION >= 105400 + m_Value = std::move(other.m_Value); +#else /* BOOST_VERSION */ m_Value.swap(other.m_Value); - } #endif /* BOOST_VERSION */ + return *this; + } + bool operator==(bool rhs) const; bool operator!=(bool rhs) const;