3

Xcode 4.5 中“C++ 标准库”和“C++ 语言方言”的“编译器默认值”是什么值?

我的猜测是 libstdc++ 和 GNU++98,但最好能澄清一下。

来自Xcode 4.5 发行说明

使用此 Xcode 版本创建的项目使用标准 C++ 库的新 libc++ 实现。libc++ 库仅适用于 iOS 5.0 及更高版本以及 OS X 10.7 及更高版本。12221787

要在项目中的早期版本的 iOS 和 OS X 上启用部署,请将 C++ 标准库构建设置设置为 libstdc++(Gnu C++ 标准库)。

我注意到创建一个新项目明确设置了 GNU++11 和 libc++,但“编译器默认值”可能是别的东西。

4

1 回答 1

8

这是找出答案的最佳方法:

 #include <iostream>

int main()
{
#ifdef _LIBCPP_VERSION
    std::cout << "Using libc++\n";
#else
    std::cout << "Using libstdc++\n";
#endif
#ifdef __GXX_EXPERIMENTAL_CXX0X__
#if __cplusplus == 1
    std::cout << "Language mode = gnu++11\n";
#else
    std::cout << "Language mode = c++11\n";
#endif
#else
#if __cplusplus == 1
    std::cout << "Language mode = gnu++98\n";
#else
    std::cout << "Language mode = c++98\n";
#endif
#endif
}

只需使用编译器默认值构建一个测试项目并运行它。

于 2012-10-12T19:05:53.330 回答