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

问题描述 投票:1回答:1

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

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

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

logging boost boost-log
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.