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