В С++ 20 препроцессор поддерживает __VA_OPT__
как способ опционального расширения токенов в переменном макросе, если количество аргументов больше нуля. (Это устраняет необходимость расширения ##__VA_ARGS__
GCC, которое является не переносным и уродливым взломом.)
Clang SVN реализовала эту функцию, но они не добавили для нее макрос проверки функций. Может ли любой умный хакер препроцессора определить способ обнаружения присутствия или отсутствия поддержки __VA_OPT__
, не вызывая серьезной ошибки или предупреждения о переносимости?