2014-01-25 75 views
0

在Xcode 5(也許4)項目設置 -
我們怎樣才能找出「編譯器的默認」實際上解析爲蘋果LLVM - 語言 - C++設置?什麼是Xcode的C++語言設置的「編譯器默認值」?

enter image description here

+0

AFAIK它是C++ 03。 (嘗試編寫一些簡單的C++ 11構造,它是否工作?) – 2014-01-25 09:01:06

+0

'auto'的確,基於範圍的是,lambda不。你走了。 – Jay

+0

噢,這是...... *有趣。*我建議你明確設置語言版本('-std = C++ 98','-std = C++ 03','-std = C++ 0x'或'-std = C++ 11')。 – 2014-01-25 09:04:38

回答

2

根據在Xcode 5.0.2 「快速幫助檢查」,目前的 「編譯器默認」 是 「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 } 
+0

乾杯!我一定是盲目的 - 但構建選項的快速幫助是我嘗試過的第一件事情,但它對於所有構建設置都是空白的。然後再次,我的Xcode 5安裝似乎是錯誤的...(http://stackoverflow.com/questions/20945758/no-more-quick-help-in-xcode-editor) – Jay