Достигните противоположности __VA_OPT__ в макросах, похожих на функции препроцессора с переменным числом аргументов.C++

Программы на C++. Форум разработчиков
Anonymous
Достигните противоположности __VA_OPT__ в макросах, похожих на функции препроцессора с переменным числом аргументов.

Сообщение Anonymous »

Как я могу добиться эффекта, противоположного VA_OPT(), расширяя только, если в VA_ARGS нет переменных аргументов. Что-то вроде VA_NOT_OPT().
Пример:

Код: Выделить всё

#define MY_MACRO(...) __VA_NOT_OPT__(default) __VA_ARGS__

Код: Выделить всё

MY_MACRO()
разворачивается до значения по умолчанию

Код: Выделить всё

MY_MACRO(arg)
расширяется до arg
Что мне действительно нужно, так это один необязательный параметр со значением по умолчанию. Но я думаю, что C-препроцессор этого не поддерживает. Но, возможно, кто-то знает лучше меня.

Подробнее здесь: https://stackoverflow.com/questions/778 ... ike-macros

Вернуться в «C++»