__GNUC_PREREQ__
#if __GNUC_PREREQ__(3, 3)
#if __GNUC_PREREQ__(3, 3)
#if __GNUC_PREREQ__(4, 0)
#if __GNUC_PREREQ__(3, 1)
#if defined(__clang__) || __GNUC_PREREQ__(4, 6)
#if __GNUC_PREREQ__(4, 3)
#if __GNUC_PREREQ__(2,96)
#if !__GNUC_PREREQ__(2, 5) && !defined(__PCC__)
#if __GNUC_PREREQ__(2, 5)
#if __GNUC_PREREQ__(2, 96)
#if __GNUC_PREREQ__(2, 7)
#if __GNUC_PREREQ__(3, 1)
#if __GNUC_PREREQ__(3,4)
#if __GNUC_PREREQ__(3,3) && !defined(__clang__)
#if __GNUC_PREREQ__(4, 1)
# if __GNUC_PREREQ__(4, 2)
#if __GNUC_PREREQ__(2, 96)
#if __GNUC_PREREQ__(2, 7) || defined(__PCC__)
#if !__GNUC_PREREQ__(2, 8)
#if __GNUC_PREREQ__(3, 0)
#if __GNUC_PREREQ__(4, 0)
#if __GNUC_PREREQ__(4, 0)