я эти макросы, которые генерируют ошибку в Visual Studio 2015.Запятая в C/C++ макрос передается другой макрос
#define log_params __FILE__, __LINE__
#define log(file, line, message, ...) _snprintf_s(nullptr, 0, 0, message, __VA_ARGS__)
Теперь называют это никогда не работает
log(log_params, "testing %d", 4)
Любые мысли? Я также проверил вывод препроцессора и это:
_snprintf_s(nullptr, 0, 0, 4);
EDIT 1 Интересная найти
#define log(file, line, message, ...) file line
будет производить это:
"service.cpp", 164 "testing %d"
Это нормально?
журнал макрос ожидает (по крайней мере) 4 аргумента. –
Я получаю '_snprintf_s (nullptr, 0,0,4,);' что имеет смысл. Вы уверены, что вывод препроцессора был скопирован/вставлен правильно? – user3386109
Это не C, а C++. – Olaf