Day 27.
В C23 подъехали новые директивы
#elifdef #elifndef. Зачем они нужны?
Чтобы вот такой код:
#ifdef __clang__
#define COMPILER "clang"
#elif defined(__GNUC__)
#define COMPILER "gcc"
#elif defined(_MSC_VER)
#define COMPILER "msvc"
#else
#define COMPILER "unknown"
#endif
выглядел вот так:
#ifdef __clang__
#define COMPILER "clang"
#elifdef __GNUC__
#define COMPILER "gcc"
#elifdef _MSC_VER
#define COMPILER "msvc"
#else
#define COMPILER "unknown"
#endif
Фактически пытаемся снизить шум от
defined(...).@thisnotes. Patreon, Boosty.
Спасибо Artyom Garkavy и niki4smirn.