1#if defined(_MSC_VER)
2# if !defined(likely)
3# define likely(x) (x)
4# endif
5# if !defined(unlikely)
6# define unlikely(x) (x)
7# endif
8#else
9# if !defined(likely)
10# define likely(x) (__builtin_expect(!!(x), 1))
11# endif
12# if !defined(unlikely)
13# define unlikely(x) (__builtin_expect(!!(x), 0))
14# endif
15#endif
16