【发布时间】:2019-08-05 12:40:05
【问题描述】:
当我使用 std::map 的 merge(source) 时出现错误:
error: no member named 'merge'
但是,std::map::merge 从 c++17 开始就应该存在。
我确实添加了set(CMAKE_CXX_STANDARD 17) 和-stdlib=libc++。 std::map::extract 已经存在。这是 clang-7 的错误吗?
如果我去掉 -stdlib=libc++,gcc 标头确实包含 std::map::merge。然后我就可以编译了。但我的项目确实需要-stdlib=libc++。有什么想法吗?
我四处寻找,发现 llvm/include/c++/v1/map 和 llvm/include/c++/v1/experimental/map 中都不存在合并。那么我应该为此包含哪个标题?还是clang-7中对c++17的支持还有问题?
【问题讨论】: