Я хочу реализовать вход в мой проект.
У меня есть макрос, что-то вроде
__LOG_TRACE(lg, expr,...) LOG_TRACE_STREAM(lg) << expr;
Итак, я хочу реализовать интерфейс для этого макроса - еще один макрос, но я хочу поддерживать 2 типа:
LOG_TRACE(msg);
LOG_TRACE(my_logger, msg);
У меня есть глобальный регистратор, и первый макрос напишет msg
, используя глобальный регистратор.
Второй макрос возьмет my_logger
и напишет msg
, используя его.
Я могу сделать это с помощью LOG_TRACE(msg, my_logger);
- но это нехорошо, труднее читать в коде. Порядок аргументов в __LOG_TRACE
не обязателен.
Upd:
Я не имею в виду перегрузку макросов.
Смотри - например, я могу сделать это
#define LOG_TRACE(...) __LOG_TRACE(__VA_ARGS__, current_active)
Теперь я могу написать
LOG_TRACE(msg);
LOG_TRACE(msg, logger);
но я хочу не msg,logger
а logger,msg