From eb8fd07900826e95afde15191bb2a0c34b46138a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 17 Jun 2014 10:35:34 +0200 Subject: lib/nfs/Manager: gcc 4.7 compatibility hack std::map::emplace() is only available from gcc 4.8 on. --- src/lib/nfs/Manager.cxx | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/lib/nfs/Manager.cxx') diff --git a/src/lib/nfs/Manager.cxx b/src/lib/nfs/Manager.cxx index 56a3fb79a..5c236552c 100644 --- a/src/lib/nfs/Manager.cxx +++ b/src/lib/nfs/Manager.cxx @@ -39,10 +39,19 @@ NfsManager::GetConnection(const char *server, const char *export_name) const std::string key = Key(server, export_name); +#if defined(__GNUC__) && !defined(__clang__) && !GCC_CHECK_VERSION(4,8) + /* std::map::emplace() not available; this hack uses the move + constructor */ + auto e = connections.insert(std::make_pair(key, + ManagedConnection(*this, loop, + server, + export_name))); +#else auto e = connections.emplace(std::piecewise_construct, std::forward_as_tuple(key), std::forward_as_tuple(*this, loop, server, export_name)); +#endif return e.first->second; } -- cgit v1.2.3