これは..
__attribute__((overloadable)) を使うと型の異なる同名の関数を複数定義できる。
例えば NSDictionaryとNSArrayにそれぞれ対応した同名のmap関数を定義した例。
__attribute__((overloadable)) NSArray *map(NSArray *array, id(^)(id obj)); __attribute__((overloadable)) NSDictionary *map(NSDictionary *dictionary, id(^)(id key, id obj));
今後 Objective-C にどんな影響があるのか楽しみ。
(関連)