我可以将 C++11 与 Xcode 一起使用吗?

发布于 2024-10-10 02:38:09 字数 271 浏览 1 评论 0原文

我正在考虑在一些跨平台项目(Windows+Mac)中使用一些 C++11 功能(例如 auto)。在 Windows 上,Visual Studio 支持即将推出的 C++11 标准的部分内容,这将使我能够简化代码库的部分内容,因此我自然会对开始使用这些功能感兴趣。

但据我所知,当前的 XCode 版本(3.2.4 + GCC 4.2)根本不支持任何 C++11 功能。我可以以某种方式升级 GCC 版本或 CLang 版本吗?或者我应该咬紧牙关等待苹果在未来的某个时候打包新版本?

I am considering the use of some C++11 features (like auto for instance) in some cross-platform projects (Windows+Mac). On Windows, Visual Studio supports parts of the upcoming C++11 standard that would allow me to simplify parts of the code base so naturally I would be interested in starting to use these features.

But as far as I am aware, the current XCode version (3.2.4 + GCC 4.2) does not support any C++11 features at all. Can I upgrade the GCC version or the CLang version somehow? Or should I just bite my tongue and wait for Apple to package a new version sometime in the future?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

小苏打饼 2024-10-17 02:38:09

Xcode 4.2 终于添加了对 C++0X 的支持:

  1. 在项目构建设置屏幕中,打开“所有”选项。

  2. 在“构建选项”部分中,将编译器设置为“Apple LLVM 编译器 3.0”。

  3. 向下滚动到“Apple LLVM Compiler 3.0 - Language”部分,并将“C++ Language Dialect”设置为“C++0X”,将“C++ Standard Library”设置为“libc++”。

已知 std::move()、移动构造函数和 R 值引用可以按预期工作,并且我正在 std::thread 和 std::atomic 上进行测试。

Xcode 4.2 had finally added support for C++0X:

  1. In the project build settings screen, switch on "All" options.

  2. In the "Build Options" section, set compiler to "Apple LLVM compiler 3.0".

  3. Scroll down to "Apple LLVM Compiler 3.0 - Language" section and set "C++ Language Dialect" to "C++0X" and "C++ Standard Library" to "libc++".

The std::move(), move constructor and R-Value reference are known to work as expected, and I'm testing on the std::thread and std::atomic.

メ斷腸人バ 2024-10-17 02:38:09

======= 2012 年更新:=======

从 Clang 开始 - Clang 中现在提供了许多 C++11 功能。它包含在 Xcode 中。

======= 2011 年 1 月的原始答案:=======

英特尔的编译器可能是目前最简洁的方法。
http://software.intel.com/en-us/articles/ intel-composer-xe/

clang 有前途,但不是特别稳定或具有 c++0x 功能。 c++ 对于 clang 来说还是很新的。

gcc:相对成熟,但你必须为 xcode 编写和维护编译器插件。

您还可以指定自定义脚本,但这维护起来很痛苦......除非您全力以赴并创建一个适配器工具。

======= Update 2012: =======

Start with Clang - Many C++11 features are now available in Clang. It's included with Xcode.

======= Original answer from Jan 2011: =======

intel's compiler may be the cleanest way to go at this time.
http://software.intel.com/en-us/articles/intel-composer-xe/

clang's promising, but not particularly stable or featured wrt c++0x features. c++ is still very new for clang.

gcc: relatively mature, but you'll have to write and maintain your compiler plugins for xcode.

you can also specify custom scripts, but that is a pain to maintain... unless you go all out and create an adaptor tool.

柒七 2024-10-17 02:38:09

Xcode 使用 GCC 或 Clang C++ 编译器。这些编译器支持的任何功能都是公平的。 GCC 的 C++ 兼容性页面位于此处,Clang C++ 兼容性页面位于此处

Xcode uses the GCC or the Clang C++ compilers. Any features supported by those compilers are fair game. GCC's C++ compatibility page is here and the Clang C++ compatibility page is here.

冰之心 2024-10-17 02:38:09

我发现 auto、decltype()、基于范围的“for (:)”在跨平台项目中工作(LLVM for MacOSX、iOS、gcc/linux、MSVC 10/windows)。

拉姆达和遗憾的是,可变参数宏似乎无法在 LLVM 下工作。

I've found auto, decltype(), range based "for (:)" work in a cross platform project (LLVM for MacOSX,iOS, gcc/linux, MSVC 10/windows).

lambdas & variadic macros don't appear to work under LLVM yet sadly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文