c++ - LLVM C++ 和 GNU C++ 的标准库具有不同的 header

标签 c++ xcode llvm gnu c++-standard-library

我必须使用 unordered_maptrie,但不是一个标准库,也不是另一个包含它们的标准库。

// works only with LLVM library
#include <unordered_map>
// works only with GNU library
#include <ext/pb_ds/assoc_container.hpp>

我的意思是在 GCC GNU website 上有描述.

该程序是在 Xcode 7.2.1 中构建的。我曾尝试使用 GNU C++14、GNU C++11 和 C++14、C++11,但没有帮助。

如何解决这个问题?可能是我的 GNU 库太旧了,我可以在 Xcode 中更新它吗?或者,也许 LLVM 有 assoc_container.hpp 是其他路径?

最佳答案

std::unordered_map与 C++11 标准一起出现,并非所有编译器都使用 C++11(或更高版本)作为标准,但这意味着您必须在构建时添加标志才能使用它。

当使用 5.1 之前的 GCC 版本构建时,您应该添加标志 -std=c++11(或者如果需要,可以选择添加 -std=gnu++11 GCC 扩展,或者 -std=c++0x 如果你有一个非常旧的 GCC 版本)。

关于c++ - LLVM C++ 和 GNU C++ 的标准库具有不同的 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36912806/

相关文章:

c++ - MongoDB:是否可以避免使用自动 _id 字段?

c++ - 用调试版本覆盖 new 而不会损坏 placement new

c++ - 运算符重载和二进制表达式的无效操作数问题

objective-c - NSBundle pathForResource 为 NULL

ios - 网页加载后事件指示器不隐藏

macos - 如何使 AddressSanitizer 在出现错误(和其他问题)后不会停止

C++ pthreads/semaphores 不运行

objective-c - 禁用 ARC——编译器标志已设置

c++ - Clang-cl.exe 和 constexpr 深度

visual-studio-2015 - ClangFormat 扩展未在 Visual Studio 2015 上正确安装