/* The tgmath real type for T, where E is 0 if T is an integer type and
1 for a floating type. */
#define __tgmath_real_type_sub(T, E) \
__typeof__(*(0 ? (__typeof__(0 ? (double *)0 : (void *)(E)))0 \
: (__typeof__(0 ? (T *)0 : (void *)(!(E))))0))
条件演算子の型のルールの一部:
See C99 6.5.15.6