Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 1 Apr 2018 14:19:30 +0200
From:      Willem Jan Withagen <wjw@digiware.nl>
To:        FreeBSD Toolchain <freebsd-toolchain@freebsd.org>, Dimitry Andric <dim@FreeBSD.org>
Subject:   Looking for std::map::merge when compiling for Clang...
Message-ID:  <7f0f0f04-7073-ba49-526d-82330b1d0842@digiware.nl>

next in thread | raw e-mail | index | archive | help
Hi,

I'm trying to compile a src file with Ceph that has been upgrade to use 
more of the C++17 features, but it fails on a missing function:

/home/jenkins/workspace/ceph-master/src/mds/OpenFileTable.cc:349:26: 
error: no member named 'merge' in 
'std::__1::map<std::__1::basic_string<char>, ceph::buffer::list, 
std::__1::less<std::__1::basic_string<char> >, 
std::__1::allocator<std::__1::pair<const std::__1::basic_string<char>, 
ceph::buffer::list> > >'
     ctl.journaled_update.merge(ctl.to_update);
     ~~~~~~~~~~~~~~~~~~~~ ^

The actual code looks like:
====
     ctl.journaled_update.merge(ctl.to_update);
     //ctl.journaled_update.insert(ctl.to_update.begin(), 
ctl.to_update.end());

     // ctl.journaled_remove.merge(ctl.to_remove);
     ctl.journaled_remove.insert(ctl.to_remove.begin(), 
ctl.to_remove.end());
====
The first "merge" fails, but the second (old code) works.

It does compile on Linux/GCC, so probably there is a wrong/missing 
include, given the error.
But which one???

included are:
#include <iosfwd>
#include <list>
#include <map>
#include <set>
#include <string>
#include <string_view>

Suggestions?

Thanx,
--WjW





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7f0f0f04-7073-ba49-526d-82330b1d0842>