我正在使用助推(1.77)精神气和雷克萨斯。错误处理程序需要一个字符流,但我要向它传递一个令牌流,从而导致错误消息的混淆。
我认为,下面的线索指出了一个解决办法:
Boost.Spirit: Lex + Qi error reporting
在评论中,@hkaiser写道:
只是一个更新:这个示例在SVN中被重命名为conjure2。
我刚看了一下conjure2。为了理解该程序的功能,我打开main.cpp并阅读评论,我发现的所有内容如下:
不再是计算器了,对吗?:-)
这是什么意思?
我试图编译这个程序,但是它失败了:
"error C2516: 'boost::phoenix::evaluator::impl<const Expr&,
boost::phoenix::vector2boost::mpl::true_,
boost::phoenix::is_nullary,boost::proto::envns_::empty_env>::result_type':
is not a legal base class"我做错了什么?
发布于 2021-12-23 09:00:17
修复方法是将其放在lexer_def.hpp的顶部:
#include <boost/phoenix/operator.hpp>它应该定义缺少的表达式模板运算符,这些运算符阻止了lexer语义操作的编译。
https://stackoverflow.com/questions/70433905
复制相似问题