Достигните противоположности __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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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