在Xcode 4.5中,什么是"编译器默认" for" C ++标准库"和" C ++语言方言"?

时间:2012-10-12 18:43:23

标签: c++ xcode c++11 libstdc++ libc++

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

我的猜测是libstdc ++和GNU ++ 98,但澄清会很好。

来自Xcode 4.5 release notes

  

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

     

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

我注意到创建一个新项目显式设置了GNU ++ 11和libc ++,但“Compiler Default”可能是其他的。

1 个答案:

答案 0 :(得分: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
}

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