【问题标题】:clang 7 does not have std::map::merge?clang 7 没有 std::map::merge?
【发布时间】: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的支持还有问题?

【问题讨论】:

    标签: clang llvm clang++


    【解决方案1】:

    它在 LLVM 8 中,但不是 7。它是 the C++17 status table 中的项目 p0083r3,这是提交:

    https://github.com/llvm/llvm-project/commit/5c4e07ae5c6f7f467b436f1b24f41ef4cf9897b3

    从标签列表来看,它似乎没有被向后移植到 7。

    【讨论】:

    • 糟糕……坏消息
    猜你喜欢
    • 1970-01-01
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 2012-04-22
    相关资源
    最近更新 更多