lib/nfs/Manager: gcc 4.7 compatibility hack

std::map::emplace() is only available from gcc 4.8 on.
This commit is contained in:
Max Kellermann
2014-06-17 10:35:34 +02:00
parent c99559dbe9
commit eb8fd07900
3 changed files with 32 additions and 0 deletions

View File

@@ -103,6 +103,22 @@ public:
server(_server), export_name(_export_name),
context(nullptr) {}
#if defined(__GNUC__) && !defined(__clang__) && !GCC_CHECK_VERSION(4,8)
/* needed for NfsManager::GetConnection() due to lack of
std::map::emplace() */
NfsConnection(NfsConnection &&other)
:SocketMonitor(((SocketMonitor &)other).GetEventLoop()),
DeferredMonitor(((DeferredMonitor &)other).GetEventLoop()),
server(std::move(other.server)),
export_name(std::move(other.export_name)),
context(nullptr) {
assert(other.context == nullptr);
assert(other.new_leases.empty());
assert(other.active_leases.empty());
assert(other.callbacks.IsEmpty());
}
#endif
~NfsConnection();
gcc_pure