В настоящее время я пытаюсь определить функцию на основе флага компилятора.Если установлен флаг TRACE, то я хочу определить макрос для передачи информации компоненту трассировки.
#define TRACERPTR(Reporter * pReporter, traceComponent eComponent, traceLevel eLevel, string sFormat, formatArgs...) \
if (pReporter != NULL) { pReporter->trace(eComponent, eLevel, sFormat, ##formatArgs); }
Reporter - это класс, определенный в том же файле .h над этим макросом.Мне нужно передать указатель на объект репортера, который затем используется для вызова функции трассировки.
Однако я получаю ошибку компилятора:
ошибка: «*» можетне отображаются в списке параметров макроса
Мне было любопытно, что произойдет, если я просто уберу "*" - что приводит к ошибке "параметры макроса должны быть разделены запятыми".
Есть идеи, что я здесь делаю не так?