【问题标题】:Does OS X 10.7 libc++ support c++14?OS X 10.7 libc++ 是否支持 c++14?
【发布时间】:2015-05-15 10:42:11
【问题描述】:

我正在更新一个项目以使用最新的 Qt,并借此机会同时切换到 libc++ 和 C++11。我的理解是 OS X 10.7 及更高版本支持这一点,而我不需要发布我自己构建的标准库。我很高兴不再支持 OS X 版本

C++11 支持很棒,但我真的很想使用 C++14。

为 OS X >10.7 的最终用户安装的 libc++ 是否也支持 C++14 标准库功能?

我的猜测是“是”,并且它会通过 >10.7 中的操作系统更新保持最新 - 但我一直无法找到明确的来源来说明这种情况。

【问题讨论】:

  • 这是一个有趣的问题,因为 C++14 支持刚刚添加到 Xcode 6.3 编译器 AFAIK。它可能取决于编译器提供了多少功能以及运行时库提供了多少。我很想在这里听到一个好的答案。
  • 是的,这也取决于新的 C++14 标准库添加是否是纯模板(即 make_unique),或者是否有任何实际需要构建到动态库中的东西。

标签: c++ macos osx-lion c++14 libc++


【解决方案1】:

可能不会。 Apple 于 2012 年 10 月发布了 Mac OS X 10.7 (10.7.5) 的最后一次更新;从那时起,libc++.dylib 不太可能更新(我能想到的唯一例外是安全问题)

Xcode 附带了一组标头,这些标头会随着您的目标 SDK 而变化;如果您针对特定系统(例如 10.7),您将获得这些标头。

比较/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include//Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/的内容也明白我的意思。

对于仅限模板的功能,您可以使用您自己的一组来自更高版本 LLVM 的标头 - 但是您将自己承担确保兼容性的责任。

【讨论】:

  • 谢谢马歇尔,这是有道理的。特别感谢您指出虽然我可以使用我自己的带有仅模板功能的标头,但生成的代码可能不一定与已安装的标准库运行时兼容。现在我会坚持使用 C++11,我会权衡未来某个时间发布我自己构建的标准库的成本/收益。
  • 旁注:我过去主要是一名 Windows 开发人员,并且习惯于随 microsft 一起为我正在使用的编译器版本提供运行时可再发行版。看来苹果世界的事情没那么简单!
  • 好吧,如果您以 10.7 为目标(例如),您将获得一个可在 10.7 及更高版本上运行的可执行文件 - 但无法访问 10.8 中的新功能。
  • 当你这样说的时候......是的,这就像你能得到的一样简单:)
猜你喜欢
  • 1970-01-01
  • 2014-05-10
  • 2014-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
相关资源
最近更新 更多