【发布时间】:2013-01-15 13:14:51
【问题描述】:
我可以用 auto 声明 ObjC 块吗?
auto fun = ^(int x) { NSLog(@"%d", x); }
fun(5);
我无法为此制定出有效的语法。
【问题讨论】:
-
我怀疑 如果 它可以工作,它只适用于 Objective-C++,因为
auto在 C 中意味着不同的东西。 -
显然在 C++0x 中有不同的含义,以前的 C++ 规范使用 C 中的
auto(这只是默认存储类型)。除非有超出此问题范围的原因,否则我鼓励在这种情况下根本不使用auto,而更喜欢int (^fun)(int) =。 (作为一名 Objective-C 开发人员,我从未使用过auto,可能需要向我所有的同事解释。)
标签: c++ objective-c c++11 clang objective-c-blocks