我有一个主要使用 C++ 的 iOS 项目。它使用 Boost 1.47。
我尝试启用 C++0x 方言,但我从 Boost 中遇到了很多编译错误。我能够让它工作的唯一方法是同时启用 libc++,这反过来又需要将部署目标设置为 iOS 5。
有没有办法让 Boost 和 C++0x 方言与默认的 libstdc++ 兼容?一些 Boost #defines 可以解决这个问题吗?我应该等待 Boost 1.48 还是干脆忘记它?
最佳答案
如果我将“BOOST_NO_VARIADIC_TEMPLATES”添加到预处理器宏设置,它可以在 Boost 1.48 上正常工作。
配置概要:使用 iOS SDK 5.0,XCode 4.2.1,目标是 iOS 4.3,Boost 1.48,BOOST_NO_VARIADIC_TEMPLATES 定义,LLVM 3.0,C++ 语言方言设置为 C++0x,C++ 标准库设置为默认值(库 stdc++)。包括 Boost 在内的一切都可以编译和工作,我可以在我的项目中使用 C++11 特性。
关于c++ - 为 iOS 4.x 使用 Boost 和 C++0x 方言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8101065/