问题标签 [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 在参数中传递函数?
这是我在这里的第一篇文章,如果我不尊重“方式和习俗”,请善待:)
我是使用 Boost::Phoenix 的新手,我想将函数传递给定义如下的方法:
我的选择器功能是:
但是我的编译器说没有办法从from 'typename detail::expression::function_eval<rouletteWheelSelector, set<BTS *, BTS_Cmp, allocator<BTS *> > >::type const'
BTSSet::Iterator 转换。
我的函子声明好吗?如何强制编译器推断 sel 的正确返回类型?
谢谢 !
c++ - 凤凰功能语义动作未编译
我希望解析一个字符串并确保它是小写的。
它必须在这个阶段完成,因为精神可以从这一切中建造树。
所以我有这个规则
问题是它不能编译,错误也很大,要发布。
谢谢
编辑:我修复了运算符重载,这是我的错,但问题仍然存在。我相信*这与占位符有关
EDIT2:我已将问题分解以确保它正在处理一个字符而不是一系列字符,但它仍然无法处理相同的大量错误。
c++ - boost::bind、boost::lambda::bind 和 boost::phoenix::bind 之间的区别
我试图了解这些不同绑定方法之间的区别。boost::bind 和 boost::phoenix::bind也有类似的问题
但是,如果有人可以用例子来解释这一点,那就太好了。boost::phoenix 是否真的是 boost::bind、booost::lambda 库的超集?
c++ - boost::phoenix::sort 错误
我正在尝试使用 boost::phoenix 库对下面的向量进行排序。Foo 类有一个成员函数'int getvalue()'。目的是使用“getvalue()”返回的值对向量进行排序。但是缺少一些东西。我收到编译器错误,因为“::second 不是类或命名空间”
谁能解释一下。我需要进行哪些更改才能完成这项工作?
谢谢。
PS:我知道我可以使用函数对象/lambda 或类似的东西,但我想尝试 boost::phoenix。
c++ - 增强与成员函数/变量的绑定
A 类可以访问 B 类。
在 B 类函数中,我想调用 A 类中定义的函数,并将 B 类的参数传递给它。
因此,在 AI 类中,尝试编写以下内容以向 B 类提供所需的功能。
在 B 类中,我只调用函数:
我遇到的问题是 boost:ref 只需要 1 个参数......我能做些什么来解决这个问题?
c++ - 提升精神:使用语义动作和凤凰时的参数类型
我使用 boost spirit 来解析数学表达式并遇到了我提取到以下代码中的问题。
有一个带有一个标记的简单词法分析器,具有保存匹配字符串的属性。解析器定义了一个规则,该规则旨在获取令牌的属性并使用它调用函数。函数调用的结果应该是规则的属性值。
这无法编译(calc_something:无法将参数 1 从 const boost::spirit::_1_type 转换为 const std::string &) - 显然是因为 qi::_1 的类型没有正确推断。但是,将操作更改为简单的“cout << qi::_1”可以。
我对提振精神还很陌生,但已经设法让我的语法表现得正确。现在我需要获取解析的值,我被困在这里,希望能得到任何帮助。
c++ - Boost::Spirit 表达式解析器
我的 boost::spirit 解析器还有另一个问题。
这是我的解析器。它解析"3.1415"
得"var"
很好,但是当我尝试解析"1+2"
时它告诉我parse failed
。然后我尝试将binop
规则更改为
但是现在它当然不能构建 AST,因为_1
和_2
设置不同。我只看到过类似的东西_r1
,但作为一个新手,我不太能理解如何boost::phoenix
交互boost::spirit
。
如何解决这个问题?
c++ - 使用 boost phoenix,我如何使用starts_with 调用find_if 调用?
我试图在结构向量中找到一个元素。该代码在以区分大小写的方式进行搜索时有效。当我尝试将其增强为不区分大小写时,我遇到了两个问题。
简单地包括
boost/algorithm/string.hpp
打破以前工作的 VS2010 构建。错误是“'boost::phoenix::bind':对重载函数的模糊调用”。在 Xcode 中构建正常。有什么办法可以消除绑定的歧义吗?我想我在第二个(注释掉的)find_if 行中的语法错误,添加了 istarts_with 调用。我从 phoenix 标题中得到错误,说“错误:没有名为 'type' 的类型”。假设问题 #1 可以修复,我应该如何更正这条线?
谢谢!
代码:
c++ - phoenix::lambda 函数的执行顺序是什么?
我是boost phoenix的新手,我写了一小段代码,但它完全让我对执行顺序感到困惑,你可以检查代码
第一个输出是“ab”,但第二个输出是“dbca”
我犯了什么错误吗?