【问题标题】:Preprocessor check for Xcode 4.4 or newerXcode 4.4 或更高版本的预处理器检查
【发布时间】:2012-08-25 14:20:46
【问题描述】:

如果一个文件是在 Xcode 4.4 或更高版本下编译的,有没有办法测试(使用预处理器)?或者,更具体地说,测试编译器是否会自动 @synthesize 属性,如果没有则抛出编译错误?

【问题讨论】:

    标签: xcode xcode4 clang c-preprocessor


    【解决方案1】:

    您可以使用它来测试该功能:

    #if (defined(__clang__) && __has_feature(objc_default_synthesize_properties))
    #warning Got it
    #else
    #error omg no auto synthesis
    #endif
    

    此处记录了完整的功能列表:http://clang.llvm.org/docs/LanguageExtensions.html

    【讨论】:

    • 是的,检查功能比检查编译器版本更干净。
    • @BradLarson 但您的回答回答了问题 +1 的两个部分之一。
    【解决方案2】:

    因为这是在 4.x 版本的 LLVM 编译器中提供的,所以您应该能够使用以下内容来测试是否存在足够新的版本:

    #if __clang__ && (__clang_major__ >= 4)
     // New version code here
    #else
     // Fallback code for older version here
    #endif
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-25
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      相关资源
      最近更新 更多