问题标签 [boost-phoenix]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - BOOST_PHOENIX_ADAPT_FUNCTION 导致无效模板错误
我正在尝试根据 Boost::phoenix 文档从模板函数创建一个惰性函数。代码看起来像这样
这实际上是 BOOST 文档中的示例之一。将此文件存储为 mk_lazy1.cpp 并尝试编译给出
我在 Debian 测试系统上使用 gcc-4.7。老实说,我有点迷茫,因为我完全不知道这里出了什么问题(正如我所说,这实际上是 Boost 文档提供的示例之一的逐字复制)。
有人有好主意吗?
c++ - 用phoenix bind绑定一个boost信号
我正在使用 boost spirit qi 解析入站数据,然后根据其内容发送正确的功能。
我boost::signals
用来管理回调;我的问题是我似乎无法将 phoenix bind 与 boost 信号一起使用。
考虑以下测试用例:
这不编译,吐出一堵错误墙。
请注意,如果我将凤凰绑定线替换为
它按预期工作(但是由于程序的设计较大,这是不可能的)。
提前致谢。
c++ - Boost Phoenix 中嵌套 let 块中的变量隐藏
当“内部”局部变量隐藏“外部”局部变量时,我在 Boost Phoenix 中的嵌套 let 块遇到了一些问题。即使使用此处文档中的“可见性”示例,此处显示:
我收到以下错误:
有谁知道我如何在 Phoenix 的内部 let 块的范围内“隐藏”这样一个变量?我目前正在使用带有 GCC 版本 4.8 快照的 Ubuntu 13.04;铿锵声 3.2; 提升 1.49;还有 Boost 1.53。
c++ - 无法编译最简单的 Phoenix lambda
我目前正在尝试使以下非常简单boost::phoenix::lambda
的编译:
但是,这会产生大量错误(此处无法发布),对我来说没有任何意义。以下是编译器输出的摘录:
我在带有 Boost 1.53.0 的 Windows XP 上使用 MinGW 4.7.2 编译这些。我究竟做错了什么?
c++ - Obtaining the types of local variables in Boost Phoenix
How can I obtain the types of the local variables used within a scoped Boost Phoenix statement? Using Phoenix and Proto I can extract numerous aspects of a Phoenix expression. For example, the following code exposes the arity (3); tag type (lambda_actor); and child-2 tag type (shift_left) of a Phoenix lambda expression:
How can I obtain the types of the local variables; in this example: _a
and _b
?
c++ - Boost.Spirit.Qi:在解析时动态创建“差异”解析器
-
二进制(减号)运算符可以创建“差异”解析器:
甚至复合差异:
但是我怎样才能在解析时生成差异解析器的整个结果呢?
我猜它可能是某种形式,如下所示:
在这里,该{..., ..., ...}
部分实际上是一个 stl 容器,但这不是重点;我可以处理那部分。
我找到了模板qi::difference<Left, Right>
——但我不知道如何使用它。
c++ - 用作仿函数时的 boost::phoenix 错误消息
我正在尝试学习 boost::phoenix 并尝试在 std::transform 中使用它,如下所示。
但是,我收到一个错误error: base operand of '->' has non-pointer type 'const boost::phoenix::actor<boost::phoenix::argument<0> >'
我不太确定这是什么意思。任何帮助都会很棒。谢谢
c++ - Boost.spirit:解析数字字符和字符串
我需要解析一行,其中包含一个 unsigned int、X
要丢弃的字符和一个字符串,所有这些都由一个或多个空格分隔。例如,1234 X abcd
上面的代码解析了这三个部分,但字符串最终包含一个垃圾字符 ( �abcd
) 并且大小为 5 而不是 4。
我的解析器有什么问题?为什么字符串中有垃圾?
c++ - 提升规则的精神排列
我有两种类型的表达式,我想解析和计算结果。
算术表达式:+、-、*、/ 和 sqrt() 函数;例如:“2 + 3 * sqrt(100*25)” -> 应该计算为 152
函数:GetSubString() 和 ConcatenateStrings() 例如:“GetSubString('100str1', 0, 3)” -> 应计算为 100
我有 2 个单独的语法来解析这些表达式类型。现在我想将这两种语法结合起来,并可以一起定义这些表达式。
前任:
- "GetSubString('100str1', 0, 2+1) + sqrt(9)" -> 结果= 103
- “2 + 3 * sqrt(GetSubString('100str1', 0, 2+1))” -> 结果= 32
我试图通过使用置换运算符来组合以下两种语法。但它不编译。
那么这是结合我的 function_call_ 和算术表达式_ 规则的正确方法还是我应该如何做到这一点?