Сообщение Re[6]: Практика использования std::unique_ptr std::call_once от 03.12.2015 8:47
Изменено 10.12.2015 1:05 kaa.python
Здравствуйте, antropolog, Вы писали:
A>Здравствуйте, xobotik, Вы писали:
X>>КО? И каждый раз при записи в лог создавать экземпляр класса и вызывать функцию?
X>>Вроде написал сценарий использования или напрасно ?
A>зачем все эти извращения с недосинглтонами, гонками и прочей ахинеей, когда можно сделать просто:
A>
A>
A>
A>и наконец main
A>
A>кому нужен лог — подключает logger.h и пишет в лог. Логгер инициализируется один раз явно в main. Код понятен даже ребёнку. Работает стабильно. Ошибиться очень тяжело. Повторяю вопрос — "Зачем делать через ж-у то, что можно сделать прямо и очевидным образом?"
Сделать можно, только использовать его могут на стороне через ж-у и не очевидным способом. Поэтому хотелось сделать гарантированную разовую инициализацию.
A>Здравствуйте, xobotik, Вы писали:
X>>КО? И каждый раз при записи в лог создавать экземпляр класса и вызывать функцию?
X>>Вроде написал сценарий использования или напрасно ?
A>зачем все эти извращения с недосинглтонами, гонками и прочей ахинеей, когда можно сделать просто:
A>
A>//loggger.h
A>//Интерфейс лога, подключается там, где нужно писать в лог
A>log(severety, message);
A>
A>
A>//logger_factory.h
A>//Интерфейс фабрики логгера, подключается только в одном файле - в main.cpp
A>initLog(filename)
A>deinitLog();
A>
A>
A>//logger.cpp
A>//Имплементация логгера
A>#include "loggger.h"
A>#include "logger_factory.h"
A>class Log {
A> open(filename);
A> close();
A> writeToLog(severety, message);
A>};
A>Log global_log;
A>initLog(filename) {
A> global_log.init(filename);
A>}
A>deinitLog(
A> global_log.close();
A>}
A>log(severity, message) {
A> global_log.writeToLog(severity, message);
A>}
A>
A>и наконец main
A>
A>#include "logger_factory.h"
A>main() {
A> initLog( get_new_log_name() );
A> ....
A> deinitLog();
A>}
A>
A>кому нужен лог — подключает logger.h и пишет в лог. Логгер инициализируется один раз явно в main. Код понятен даже ребёнку. Работает стабильно. Ошибиться очень тяжело. Повторяю вопрос — "Зачем делать через ж-у то, что можно сделать прямо и очевидным образом?"
Сделать можно, только использовать его могут на стороне через ж-у и не очевидным способом. Поэтому хотелось сделать гарантированную разовую инициализацию.
Re[6]: Практика использования std::unique_ptr std::call_once
Здравствуйте, antropolog, Вы писали:
A>кому нужен лог — подключает logger.h и пишет в лог. Логгер инициализируется один раз явно в main. Код понятен даже ребёнку. Работает стабильно. Ошибиться очень тяжело. Повторяю вопрос — "Зачем делать через ж-у то, что можно сделать прямо и очевидным образом?"
Сделать можно, только использовать его могут на стороне через ж-у и не очевидным способом. Поэтому хотелось сделать гарантированную разовую инициализацию.
A>кому нужен лог — подключает logger.h и пишет в лог. Логгер инициализируется один раз явно в main. Код понятен даже ребёнку. Работает стабильно. Ошибиться очень тяжело. Повторяю вопрос — "Зачем делать через ж-у то, что можно сделать прямо и очевидным образом?"
Сделать можно, только использовать его могут на стороне через ж-у и не очевидным способом. Поэтому хотелось сделать гарантированную разовую инициализацию.