Only use __typeof__ based macros when using GCC-like compilers