问题标签 [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.

0 投票
1 回答
482 浏览

c++ - 如何使用 Boost::Phoenix 在参数中传递函数?

这是我在这里的第一篇文章,如果我不尊重“方式和习俗”,请善待:)

我是使用 Boost::Phoenix 的新手,我想将函数传递给定义如下的方法:

我的选择器功能是:

但是我的编译器说没有办法从from 'typename detail::expression::function_eval<rouletteWheelSelector, set<BTS *, BTS_Cmp, allocator<BTS *> > >::type const'BTSSet::Iterator 转换。

我的函子声明好吗?如何强制编译器推断 sel 的正确返回类型?

谢谢 !

0 投票
1 回答
345 浏览

c++ - `boost::phoenix::static_cast_` 与标准库混合使用

0 投票
2 回答
332 浏览

c++ - 凤凰功能语义动作未编译

我希望解析一个字符串并确保它是小写的。

它必须在这个阶段完成,因为精神可以从这一切中建造树。

所以我有这个规则

问题是它不能编译,错误也很大,要发布。

谢谢

编辑:我修复了运算符重载,这是我的错,但问题仍然存在。我相信*这与占位符有关

EDIT2:我已将问题分解以确保它正在处理一个字符而不是一系列字符,但它仍然无法处理相同的大量错误。

0 投票
2 回答
1859 浏览

c++ - boost::bind、boost::lambda::bind 和 boost::phoenix::bind 之间的区别

我试图了解这些不同绑定方法之间的区别。boost::bind 和 boost::phoenix::bind也有类似的问题

但是,如果有人可以用例子来解释这一点,那就太好了。boost::phoenix 是否真的是 boost::bind、booost::lambda 库的超集?

0 投票
2 回答
248 浏览

c++ - boost::phoenix::sort 错误

我正在尝试使用 boost::phoenix 库对下面的向量进行排序。Foo 类有一个成员函数'int getvalue()'。目的是使用“getvalue()”返回的值对向量进行排序。但是缺少一些东西。我收到编译器错误,因为“::second 不是类或命名空间”

谁能解释一下。我需要进行哪些更改才能完成这项工作?

谢谢。

PS:我知道我可以使用函数对象/lambda 或类似的东西,但我想尝试 boost::phoenix。

0 投票
1 回答
695 浏览

c++ - 增强与成员函数/变量的绑定

A 类可以访问 B 类。

在 B 类函数中,我想调用 A 类中定义的函数,并将 B 类的参数传递给它。

因此,在 AI 类中,尝试编写以下内容以向 B 类提供所需的功能。

在 B 类中,我只调用函数:

我遇到的问题是 boost:ref 只需要 1 个参数......我能做些什么来解决这个问题?

0 投票
2 回答
1661 浏览

c++ - 提升精神:使用语义动作和凤凰时的参数类型

我使用 boost spirit 来解析数学表达式并遇到了我提取到以下代码中的问题。

有一个带有一个标记的简单词法分析器,具有保存匹配字符串的属性。解析器定义了一个规则,该规则旨在获取令牌的属性并使用它调用函数。函数调用的结果应该是规则的属性值。

这无法编译(calc_something:无法将参数 1 从 const boost::spirit::_1_type 转换为 const std::string &) - 显然是因为 qi::_1 的类型没有正确推断。但是,将操作更改为简单的“cout << qi::_1”可以。

我对提振精神还很陌生,但已经设法让我的语法表现得正确。现在我需要获取解析的值,我被困在这里,希望能得到任何帮助。

0 投票
1 回答
5940 浏览

c++ - Boost::Spirit 表达式解析器

我的 boost::spirit 解析器还有另一个问题。

这是我的解析器。它解析"3.1415""var"很好,但是当我尝试解析"1+2"时它告诉我parse failed。然后我尝试将binop规则更改为

但是现在它当然不能构建 AST,因为_1_2设置不同。我只看到过类似的东西_r1,但作为一个新手,我不太能理解如何boost::phoenix交互boost::spirit

如何解决这个问题?

0 投票
1 回答
621 浏览

c++ - 使用 boost phoenix,我如何使用starts_with 调用find_if 调用?

我试图在结构向量中找到一个元素。该代码在以区分大小写的方式进行搜索时有效。当我尝试将其增强为不区分大小写时,我遇到了两个问题。

  1. 简单地包括boost/algorithm/string.hpp打破以前工作的 VS2010 构建。错误是“'boost::phoenix::bind':对重载函数的模糊调用”。在 Xcode 中构建正常。有什么办法可以消除绑定的歧义吗?

  2. 我想我在第二个(注释掉的)find_if 行中的语法错误,添加了 istarts_with 调用。我从 phoenix 标题中得到错误,说“错误:没有名为 'type' 的类型”。假设问题 #1 可以修复,我应该如何更正这条线?

谢谢!

代码:

0 投票
2 回答
156 浏览

c++ - phoenix::lambda 函数的执行顺序是什么?

我是boost phoenix的新手,我写了一小段代码,但它完全让我对执行顺序感到困惑,你可以检查代码

第一个输出是“ab”,但第二个输出是“dbca”

我犯了什么错误吗?