Я пытаюсь запустить Boost.Log в своем проекте. Проблема возникает в следующей строке из тривиального примера:
using namespace boost::log;
core::get()->set_filter
(
trivial::severity >= trivial::info
);
В моем коде это означает следующее:
boost::log::core::get()->set_filter(
boost::log::trivial::severity >= boost::log::trivial::info
);
Однако я получаю следующие ошибки:
error C2039: 'severity' : is not a member of 'boost::log::v2s_mt_nt5::trivial'
error C2065: 'severity' : undeclared identifier
Я как бы ищу пространства имен, пытаясь выяснить, как я должен это делать, но на самом деле я не нахожу ничего, что работало бы. Кажется, для этого требуется какая-то сумасшедшая лямбда-функция. Меня устраивает некоторая альтернатива (определение функции, которая заполняет уровень фильтрации?), но я не уверен, как это сделать. Есть идеи?
Я использую Boost.Log версии 2.0-r862 и Boost 1.53.0.
РЕШЕНИЕ. Райан указал, что я должен проверить свои включения, и, конечно же, я включил только trivial.hpp
, но core.hpp
и expressions.hpp
также требуются как включения. Включение их решило проблему.
// need at least these 3 to get "trivial" to work
#include <boost/log/core.hpp>
#include <boost/log/expressions.hpp>
#include <boost/log/trivial.hpp>