boost-phoenix相关内容

C++中的函数式数据结构

有谁知道 C++ 数据结构库提供熟悉的 STL 结构的功能(也称为不可变,或 FP 意义上的“持久")等价物? “功能性"是指对象本身是不可变的,而对这些对象的修改会返回与父对象在适当情况下共享相同内部结构的新对象. 理想情况下,这样的库应该类似于 STL,并且可以很好地与 Boost.Phoenix 一起使用(警告-我实际上并没有使用过 Phoenix,但据我所知它提供了许多算法但没 ..

Boost Spirit还原解析

我想解析一个包含以下结构的文件: 一些垃圾*&%第 1 节 {部分内容}第2节{部分内容} 解析section_name1 { ... } section_name2 { ... } 的规则已经定义: section_name_rule = lexeme[+char_("A-Za-z0-9_")];section = section_name_rule >点亮(“{")>/*一些复杂的事情* ..
发布时间:2021-12-24 15:42:39 C/C++开发

Boost.Spirit.Qi:动态创建“差异";解析时的解析器

可以通过二进制-(减号)运算符创建“差异"解析器: rule = qi::char_ - qi::lit("}}") 甚至复合差异: rule = qi::char_ - qi::lit("}}") - qi::lit("]]") 但是我怎么能在解析时生成差异解析器的整个结果? 我猜它可能是某种形式,如下所示: phoenix::function差异解析器;规则 = qi::lazy( ..
发布时间:2021-12-24 15:36:58 C/C++开发

在boost :: spirit和std :: vectors中使用auto_表达式

我对提升::: spirit很陌生.我想将一串用逗号分隔的对象解析为std :: vector(类似于本教程中的内容).字符串可以具有不同的类型(在编译时已知):整数,例如"1,2,3" ,字符串"Apple,Orange,Banana" 等.等等.我想为所有类型提供一个统一的界面. 如果我解析单个元素,则可以使用 auto _ 表达式.向量可能有相似的界面吗?我可以定义一个规则,给定一个模 ..
发布时间:2021-04-16 18:31:47 C/C++开发

如何在使用boost :: spirit :: karma生成时避免boost :: phoenix

我是错误"LNK1179:文件无效或损坏:COMDAT重复"的受害者 和这些 (这是对我之前的问题的跟踪.) 我想用其他东西代替boost::phoenix.也许boost::bind,但我不知道如何授予它对karma::_val的访问权限. 以下代码无法在 的VC9上编译 错误C2825:"F":后跟"::"必须是类或名称空间 #include ..
发布时间:2020-09-22 05:44:01 C/C++开发

C ++中的功能数据结构

有没有人知道一个C ++数据结构库,提供功能(在FP意义上是不可变的或“持久的”)熟悉的STL结构的等价物? “功能”我的意思是对象本身是不可变的,而对这些对象的修改会返回与父对象共享相同内部的新对象。 理想情况下,图书馆将类似于STL,并且可以与Boost.Phoenix(注意事项 - 我并没有真正使用Phoenix,但据我所知,它提供了许多算法但没有数据结构,除非对现有数据进行了延 ..

转换Boost C ++ Phoenix表达式树

在Boost Phoenix文章“转换表达式树”中,这里,自定义 invert_actions 类的一组特化用于反转二进制算术表达式。例如 a + b 变为 a-b ; a * b 变为 a / b ; 这涉及表达式树的递归遍历 - 但是,遇到涉及未明确处理的运算符的表达式时,此遍历​​停止。例如, _1 + _2-_3 将变为 _1-_2 + _3 ,但 _1 + _1& _2 将保持原样 ..
发布时间:2016-10-24 13:19:36 C/C++开发

转换Boost C ++ Phoenix表达式树

在Boost Phoenix文章“转换表达式树”中,这里,自定义 invert_actions 类的一组特化用于反转二进制算术表达式。例如 a + b 变为 a-b ; a * b 变为 a / b ; 这涉及表达式树的递归遍历 - 但是,遇到涉及未明确处理的运算符的表达式时,此遍历​​停止。例如, _1 + _2-_3 将变为 _1-_2 + _3 ,但 _1 + _1& _2 将保持原样 ..
发布时间:2016-10-24 13:07:44 C/C++开发

提升lambda对比phoenix

我最近开始看着boost phoenix,作为lambda的替代品。 是phoenix完全替代lambda,还是有一些lambda功能不是由phoenix提供?是凤凰成熟吗? 我的主要兴趣是操作符组成,控制语句和强制类型。 感谢 解决方案 此帖子回答了您的所有问题。凤凰非常成熟。 Phoenix和lambda将被合并。它将是未来lambda实现的基础。 ..
发布时间:2016-10-23 22:44:21 C/C++开发

提升lambda对比phoenix

我最近开始看着boost phoenix,作为lambda的替代品。 是phoenix完全替代lambda,还是有一些lambda功能,不是由phoenix提供?是凤凰成熟吗? 我的主要兴趣是操作符组成,控制语句和强制类型。 感谢 解决方案 此帖子回答了您的所有问题。凤凰是非常成熟的。 Phoenix和lambda将被合并。它将成为未来lambda实现的基础。 ..
发布时间:2016-10-23 22:36:12 C/C++开发

Boost :: bind和Boost Phoenix :: bind之间有什么区别?

Boost :: bind和Boost Phoenix :: bind之间有什么区别? 解决方案 phoenix :: bind 就像 lambda :: bind 一个函数,它返回一个表达式模板,它记录了它必须调用给定的函数。这些设计分别与phoenix和lambda一起工作。因此,它们包含更多的东西。类似地,它们返回的类型重载所有可能的操作符,使得它们各自的动作可以被记录和稍后执行。 ..
发布时间:2016-10-23 22:11:06 C/C++开发

C ++中的功能数据结构

有没有人知道一个C ++数据结构库提供的功能(在FP意义上是不变的,或“持久的”)等同于熟悉的STL结构? “功能”我的意思是对象本身是不可变的,而对这些对象的修改返回与父对象共享相同内部的新对象。 理想情况下,库将类似STL,并可以很好地与Boost.Phoenix(注意,我没有实际使用凤凰,但只要我能告诉它提供了许多算法,但没有数据结构,除非一个懒惰计算的改变现有的数据结构计数 - ..