эффективные макросы препроцессора C без #define - PullRequest
0 голосов
/ 07 января 2019

Я хочу использовать класс Logger для ведения журнала. В C ++ этот класс имеет статический тип и используется как:

auto logger = Logger::GetInstance();
logger->Log(message, FileName, Line)

для имени файла и номера строки, я могу использовать макрос __ FILE__ и __ LINE__, но везде, где я использую этот регистратор, должен писать этот макрос. Это моя первая проблема

Я нашел способ, использующий #define, вот так:

#define LOG(message) Logger::getInstance()->Log(message, __ FILE__, __ LINE__)

и с этой функцией мне не нужно писать этот препроцессор. используйте #define Моя проблема со звуком , как сказал Скотт Мейерс в этой книге.

Есть ли способ избежать #define и не писать каждый раз этот препроцессор?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...