Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
预处理器检查Xcode 4.4或更新版本_Xcode_Xcode4_Clang_C Preprocessor - Fatal编程技术网

预处理器检查Xcode 4.4或更新版本

预处理器检查Xcode 4.4或更新版本,xcode,xcode4,clang,c-preprocessor,Xcode,Xcode4,Clang,C Preprocessor,是否有方法(使用预处理器)测试文件是否在Xcode 4.4或更高版本下编译?或者,更具体地说,要测试编译器是否会自动合成属性,如果不会,则抛出编译错误?因为这是4.x版本的LLVM编译器提供的,您应该能够使用以下方法来测试是否存在足够新的版本: #if __clang__ && (__clang_major__ >= 4) // New version code here #else // Fallback code for older version here #en

是否有方法(使用预处理器)测试文件是否在Xcode 4.4或更高版本下编译?或者,更具体地说,要测试编译器是否会自动合成属性,如果不会,则抛出编译错误?

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

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

您可以使用此选项测试功能:

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

功能的完整列表记录在这里:

是的,检查功能比检查编译器版本更简洁。@BradLarson但你的答案回答了问题+1的两部分之一。