Я хочу написать макрос FOO, так чтобы FOO(x) и FOO(x, y) делали разные вещи.
Как это сделать?
Вариант для Clang и GCC:
Определяем два макроса с разным количеством аргументов
#define FOO_1(x) x*100
#define FOO_2(a, b) a*b
Пишем вспомогательный макрос, который возвращает 3й переданный параметр. Он будет выбирать один из двух макросов выше.
#define FOO_SELECT(_1, _2, macro, ...) macro
#define FOO(...) FOO_SELECT(__VA_ARGS__, FOO_2, FOO_1, dummy)(__VA_ARGS__)
Если было передан один аргумент, то FOO_SELECT(1, FOO_2, FOO_1, dummy)
раскроется в FOO_1
.
Для двух аргументов FOO_SELECT(1, 2, FOO_2, FOO_1, dummy)
раскроется в FOO_2
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он соответствовал тематике «Stack Overflow на русском»
Есть идея кода, который раскладывает текст на "сущности" с помощью шаблона CompositeДалее с отдельными данными можно как-то работать, а можно вообще...
В классе User добавить метод setContacts с параметрами: String email, String phoneNumberВ этом методе должен создаватся объект класса Contacts, и присваиватся в поле...
Когда компилирую в NetBeans, то всё работает отлично, json парсится без проблемТолько собираю проект, и когда запускаю jar файл, то вылетает такая...