Вдохновленный публикацией «Регистратор с функциями-членами, которых не существует» , я решил для размышления выставить на всеобщее обозрение свой мета-байк, которым вполне успешно пользуюсь, и не только для логгирования.
Но начнём с простого логирования, продолжая вышеизложенную публикацию.
При реализации логирования перед собой были поставлены следующие задачи:
- Решите проблему на «метауровне», чтобы отвязаться от окончательной реализации.
- Интерфейсный API для ведения журналов должен быть простым и прозрачным.
- Уметь отключать ненужные уровни логирования на этапе компиляции одной константой; например: все, что выше LOG_NOTICE, не должно включаться в результирующий двоичный файл
2. Откуда наследуется CConnectionTestLog::Log<LOG_NOTICE>() << *this << "connection created";
public TLogHeader<'c', CConnection>
3. Который, используя ЦРТП , знает, что в CConnection есть это: Теги: #метапрограммирование #c++11 #программирование #C++
Вместе с данным постом часто просматривают:
-
Электронные Коммутационные Системы
19 Oct, 24 -
Поработаем?
19 Oct, 24 -
Претензии Asechka.ru И Aol
19 Oct, 24 -
С Рождеством!
19 Oct, 24