1 2@protocol foo; 3@class itf; 4 5// Expressions 6typedef typeof(@"foo" "bar") objc_string; 7typedef typeof(@encode(int)) objc_encode; 8typedef typeof(@protocol(foo)) objc_protocol; 9typedef typeof(@selector(noArgs)) objc_selector_noArgs; 10typedef typeof(@selector(oneArg:)) objc_selector_oneArg; 11typedef typeof(@selector(foo:bar:)) objc_selector_twoArg; 12 13 14// Types. 15typedef typeof(id<foo>) objc_id_protocol_ty; 16 17typedef typeof(itf*) objc_interface_ty; 18typedef typeof(itf<foo>*) objc_qual_interface_ty; 19 20@interface PP 21@property (assign) id prop; 22@end 23 24static inline id getPseudoObject(PP *p) { 25 return p.prop; 26} 27