什么是Ccode的C ++语言设置的'编译器默认'?

时间:2014-01-25 08:59:08

标签: c++ xcode xcode5 clang llvm

在Xcode 5(可能还有4个)项目设置中 -
我们怎样才能找出 Apple LLVM - 语言 - C ++ 设置中“编译器默认”实际解析的内容?

enter image description here

1 个答案:

答案 0 :(得分:2)

根据Xcode 5.0.2中的“Quick Help Inspector”,当前的“Compiler Default”是“GNU ++ 98”,它对应于编译器选项“-std = gnu ++ 98”。

也可以在编译器源代码(http://clang.llvm.org/doxygen/CompilerInvocation_8cpp_source.html,第01057行)中看到:

01033   if (LangStd == LangStandard::lang_unspecified) {
01034     // Based on the base language, pick one.
01035     switch (IK) {
01036     case IK_None:
01037     case IK_AST:
01038     case IK_LLVM_IR:
01039       llvm_unreachable("Invalid input kind!");
01040     case IK_OpenCL:
01041       LangStd = LangStandard::lang_opencl;
01042       break;
01043     case IK_CUDA:
01044       LangStd = LangStandard::lang_cuda;
01045       break;
01046     case IK_Asm:
01047     case IK_C:
01048     case IK_PreprocessedC:
01049     case IK_ObjC:
01050     case IK_PreprocessedObjC:
01051       LangStd = LangStandard::lang_gnu99;
01052       break;
01053     case IK_CXX:
01054     case IK_PreprocessedCXX:
01055     case IK_ObjCXX:
01056     case IK_PreprocessedObjCXX:
01057       LangStd = LangStandard::lang_gnucxx98;
01058       break;
01059     }
01060   }