Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef TYPECHECK_H_INCLUDED
  2. #define TYPECHECK_H_INCLUDED
  3.  
  4. /*
  5.  * Check at compile time that something is of a particular type.
  6.  * Always evaluates to 1 so you may use it easily in comparisons.
  7.  */
  8. #define typecheck(type,x) \
  9. ({      type __dummy; \
  10.         typeof(x) __dummy2; \
  11.         (void)(&__dummy == &__dummy2); \
  12.         1; \
  13. })
  14.  
  15. /*
  16.  * Check at compile time that 'function' is a certain type, or is a pointer
  17.  * to that type (needs to use typedef for the function type.)
  18.  */
  19. #define typecheck_fn(type,function) \
  20. ({      typeof(type) __tmp = function; \
  21.         (void)__tmp; \
  22. })
  23.  
  24. #endif          /* TYPECHECK_H_INCLUDED */
  25.