我正在使用
Xcode 7.3,我得到了一个“Ambiguous expansion of macro”警告,对于一个在Foundation中定义的宏,但我在我的前缀文件中未定义和重新定义.我启用了模块.
重现:
>在构建设置中将“启用模块(C和Objective-C)”设置为“是”
>使用以下前缀文件:
#import <Foundation/Foundation.h> #undef assert #define assert(e) NSLog(@"hi") // implementation is not important
>使用以下主要源文件:
int main() { assert(42); return 0; }
>然后在Xcode中构建.
>它显示了在源文件中使用“断言”宏的行上的“宏的扩展’断言’”警告. “扩展’assert’的定义”指向系统标题中的定义,而不是我的重新定义. “断言’的其他定义”指向我的前缀文件中的定义.
禁用模块时不会发生此警告.