From ccef94c11bf5589b23a08063f85b7c4adff22c55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrien=20B=C3=A9raud?= Date: Mon, 24 Dec 2018 17:13:50 -0500 Subject: [PATCH] Revert "storage: make non-movable" This reverts commit 7ebad7d3c52d661c8572768495309025e83924f9. --- src/storage.h | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/storage.h b/src/storage.h index d3803042..01d3d0fa 100644 --- a/src/storage.h +++ b/src/storage.h @@ -91,6 +91,21 @@ struct Storage { Storage() {} Storage(time_point t) : maintenance_time(t) {} +#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ <= 9 || defined(_WIN32) + // GCC-bug: remove me when support of GCC < 4.9.2 is abandoned + Storage(Storage&& o) noexcept + : maintenance_time(std::move(o.maintenance_time)) + , listeners(std::move(o.listeners)) + , local_listeners(std::move(o.local_listeners)) + , listener_token(std::move(o.listener_token)) + , values(std::move(o.values)) + , total_size(std::move(o.total_size)) {} +#else + Storage(Storage&& o) noexcept = default; +#endif + + Storage& operator=(Storage&& o) = default; + bool empty() const { return values.empty(); } @@ -158,8 +173,6 @@ struct Storage { private: Storage(const Storage&) = delete; Storage& operator=(const Storage&) = delete; - Storage(Storage&& o) noexcept = delete; - Storage& operator=(Storage&& o) = delete; std::vector values {}; size_t total_size {};