Как отделить подлинный gcc от подделок?
Интересует компактное решение для директив препроцессора.
Скажем, от некоторых подделок, типа clang и его последователей, наверное, давно можно было отличить по __GNUC__. У подлинного, он уже давно большой, а у птенцов clang стоит колом, и равен 4.
Но, тут встретился контрафакт с __GNUC__ == 14.
В качестве затычки пока поставил:
((4 < __GNUC__ && __GNUC__ < 11) || \
defined(__GNUC_WIDE_EXECUTION_CHARSET_NAME))
Но может, у него какая встроенная функция есть, типа, __has_builtin(__builtin_genuine_gcc)?