当我使用std::map的合并(源)时,我得到了一个错误:
error: no member named 'merge'然而,std::map::merge应该在c++17之后就出现了,我添加了set(CMAKE_CXX_STANDARD 17)和-stdlib=libc++。std::map::提取器已经在那里了。这是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支持仍然存在问题?
发布于 2019-08-05 13:15:45
它在LLVM 8中,而不是7中。它是C++17状态表中的item p0083r3,下面是提交:
https://github.com/llvm/llvm-project/commit/5c4e07ae5c6f7f467b436f1b24f41ef4cf9897b3
从标签列表中看,它似乎没有被重新移植到7。
https://stackoverflow.com/questions/57358807
复制相似问题