KWLet.h 383 B

123456789101112131415
  1. //
  2. // Licensed under the terms in License.txt
  3. //
  4. // Copyright 2010 Allen Ding. All rights reserved.
  5. //
  6. #if __has_feature(objc_arc)
  7. # define KW_ARC_AUTORELEASE(obj) obj
  8. #else
  9. # define KW_ARC_AUTORELEASE(obj) [obj autorelease]
  10. #endif
  11. #define KW_LET_REF(var) \
  12. (__autoreleasing id *) \
  13. ( (void *(^)(void)) KW_ARC_AUTORELEASE([^{ void *ref = &var; return ref; } copy]) )()