我使用Boost 1.66.0和VS 2017通过boost :: log库教程。 从一开始就解决问题:
void init()
{
logging::core::get()->set_filter
(
logging::trivial::severity >= logging::trivial::info
);
}
错误:
没有运营商"> ="匹配这些操作数......
它看起来合法 - 第一个操作数是一个没有定义任何比较运算符的结构(包括公共基类。我是否错过了一些免费函数?)。第二个操作数是枚举。
我的问题是它之前是如何运作的?
答案 0 :(得分:0)
示例代码没有错,您可以测试它是否编译并运行,请参阅libs/log/example/doc/tutorial_trivial_flt.cpp
获取完整代码。
过滤器表达式中的第一个参数是关键字,也是Boost.Phoenix终端。它使过滤器表达式构建一个Boost.Phoenix函数对象,而不是立即评估比较。因此,比较运算符取自Boost.Phoenix(boost/phoenix/operator/comparison.hpp
,boost/phoenix/operator.hpp
包含在boost/log/expressions.hpp
中。