Only use __typeof__ based macros when using GCC-like compilers
Define __inline__ for MSVC