/** Привет, поделюсь простым способом ведения логов. Некоторые думают, что добавить логи в программу очень сложно и пишут простые классы на 1000 строк. Вот простой способ. */ template <typename Out> struct logger { logger(Out& out): m_out(out) { m_out << "LOG: "; } ~logger() { m_out << "\n"; } Out& get() { return m_out; } private: Out& m_out; }; /** Главное, чтобы Out умел операцию "<<"; Таким образом, мы можем подсунуть хоть std::fstream, хоть std::cout. Использование: */ #include <iostream> #define LOG logger<std::ostream>(std::cout).get() LOG << "Hello, world! " << 1; LOG << "Hello, world! " << 2; /** Класс logger уже дружен со многими стандартными классами. Так же он легко используем и расширяем. Это я покажу в следующем посте. */
среда, 21 августа 2013 г.
struct logger
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий