Sto cercando di ottenere Boost.Log andando nel mio progetto. Il problema si presenta nel seguente riga dalla esempio banale:Boost.Log impossibile impostare il filtro di registrazione (identificatore non dichiarato 'severity')
using namespace boost::log;
core::get()->set_filter
(
trivial::severity >= trivial::info
);
Nel mio codice, questo si traduce al seguente:
boost::log::core::get()->set_filter(
boost::log::trivial::severity >= boost::log::trivial::info
);
Tuttavia, ottengo i seguenti errori:
error C2039: 'severity' : is not a member of 'boost::log::v2s_mt_nt5::trivial'
error C2065: 'severity' : undeclared identifier
Sto esplorando gli spazi dei nomi cercando di scoprire come dovrei farlo, ma non trovo davvero nulla che funzioni. Sembra che per questo sia necessaria una pazza funzione lambda. Sto bene con qualche alternativa (definendo una funzione che riempie il livello di filtraggio?), Ma non sono sicuro di come farlo. Qualche idea?
Sto utilizzando Boost.Log versione 2.0-r862 e Boost 1.53.0.
SOLUZIONE: Ryan ha sottolineato che dovrei controllare la mia include, e abbastanza sicuro che stavo soltanto compreso trivial.hpp
, ma core.hpp
e expressions.hpp
sono anche richiesti come include. Compresi quelli hanno risolto il problema.
// 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>
Ehi, oritteropo, sto avendo difficoltà a filtrare la gravità. La mia domanda è qui: stackoverflow.com/q/29707017/1735836 – Patricia