プロジェクトで 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 を使用しています。
解決策: Ryan は、インクルードを確認する必要があると指摘し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>