clang 7没有std::map::merge?
clang 7 does not have std::map::merge?
当我使用 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 header 确实包含 std::map::merge。然后我就可以编译了。但我的项目确实需要 -stdlib=libc++
。有什么想法吗?
我四处寻找,发现 llvm/include/c++/v1/map
和 llvm/include/c++/v1/experimental/map
中都不存在合并。那么我应该包括哪个 header 呢?或者 clang-7 中的 c++17 支持仍然有问题?
它在 LLVM 8 但不是 7。它是 the C++17 status table 中的项目 p0083r3,这是提交:
https://github.com/llvm/llvm-project/commit/5c4e07ae5c6f7f467b436f1b24f41ef4cf9897b3
从标签列表来看,它似乎没有被移植到 7。
当我使用 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 header 确实包含 std::map::merge。然后我就可以编译了。但我的项目确实需要 -stdlib=libc++
。有什么想法吗?
我四处寻找,发现 llvm/include/c++/v1/map
和 llvm/include/c++/v1/experimental/map
中都不存在合并。那么我应该包括哪个 header 呢?或者 clang-7 中的 c++17 支持仍然有问题?
它在 LLVM 8 但不是 7。它是 the C++17 status table 中的项目 p0083r3,这是提交:
https://github.com/llvm/llvm-project/commit/5c4e07ae5c6f7f467b436f1b24f41ef4cf9897b3
从标签列表来看,它似乎没有被移植到 7。