Я хочу использовать класс 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 и не писать каждый раз этот препроцессор?