Looking for std::map::merge when compiling for Clang...
Willem Jan Withagen
wjw at digiware.nl
Sun Apr 1 12:19:35 UTC 2018
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
More information about the freebsd-toolchain
mailing list