diff --git a/include/opendht/dht.h b/include/opendht/dht.h index 6935259d059af8d57e2c5710ea3111525b9a4cfd..092739818c1f074383d4ecb1538c60bb27459c38 100644 --- a/include/opendht/dht.h +++ b/include/opendht/dht.h @@ -723,8 +723,21 @@ private: Storage() {} Storage(InfoHash id, time_point now) : id(id), maintenance_time(now+MAX_STORAGE_MAINTENANCE_EXPIRE_TIME) {} - Storage(Storage&&) noexcept = default; - Storage& operator=(Storage&&) = default; +#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 9 && __GNUC_PATCHLEVEL__ < 2 + // GCC-bug: remove me when support of GCC < 4.9.2 is abandoned + Storage(Storage&& o) noexcept + : id(std::move(o.id)) + , 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();