Apple 不再在他们的平台上推进 GCC 或 libstdc++,但他们确实发布了 clang。默认情况下,在 C++11 模式下使用 Apple 提供的 clang 编译时,默认的标准库仍然是 libstdc++,它太旧,无法在 C++11 模式下正常运行。
我想在配置时测试 __GLIBCXX__ 值,并拒绝尝试在 C++11 模式下针对“太旧”的 libstdc++(比如 Apple 发布的那个)进行构建。所以我需要选择一个合理的最低版本。
虽然 GCC 在使用此表枚举编译器的不同版本中的语言功能支持方面做得很好,但我找不到一个类似的表来显示每个 libstdc++ 版本所支持的库功能。这使得很难选择一个合理的最小值,特别是如果我的项目在 C++11 模式下编译时依赖于特定的库功能。
对 C++11 库功能提供某种有意义的支持的最早版本的 libstdc++ 是什么?我意识到这是一个主观问题——我正在寻找更多来自那些在自己的项目中决定这个问题的人的指导。作为界限,libstdc++ 4.2 显然是“out”,而 4.8 显然是“in”。如果你为你的项目决定这个,你会在哪里划清界限,为什么?