boost :: log 1.66.0。来自boost教程的set_filter参数错误

时间:2017-12-27 14:44:12

标签: logging boost boost-log

我使用Boost 1.66.0和VS 2017通过boost :: log库教程。 从一开始就解决问题:

void init()  
{ 
  logging::core::get()->set_filter
  (
    logging::trivial::severity >= logging::trivial::info
  );
}

错误: 没有运营商"> ="匹配这些操作数...... 它看起来合法 - 第一个操作数是一个没有定义任何比较运算符的结构(包括公共基类。我是否错过了一些免费函数?)。第二个操作数是枚举。
我的问题是它之前是如何运作的?

1 个答案:

答案 0 :(得分:0)

示例代码没有错,您可以测试它是否编译并运行,请参阅libs/log/example/doc/tutorial_trivial_flt.cpp获取完整代码。

过滤器表达式中的第一个参数是关键字,也是Boost.Phoenix终端。它使过滤器表达式构建一个Boost.Phoenix函数对象,而不是立即评估比较。因此,比较运算符取自Boost.Phoenix(boost/phoenix/operator/comparison.hppboost/phoenix/operator.hpp包含在boost/log/expressions.hpp中。