11得票2回答
boost::MPL和boost::fusion的区别

我是一名新手,对于boost::fusion和boost::mpl库还不太熟悉。请问有人可以告诉我这两个库的主要区别吗? 到目前为止,我只使用了fusion::vector和其他几个简单的内容。现在我想使用fusion::map或者MPL::map,但我不知道该如何选择合适的一个。 我需要...

10得票4回答
Haskell中与Boost.Fusion相当的库

我一直在尝试使用GADT等创建完全类型化的Haskell DSEL,以实现全类型安全的AST。然而,正确类型化编译器需要涉及从Haskell类型到类型和值的映射(类型环境),这些内容可以被Haskell类型系统理解。C ++有Boost.Fusion库,其中包含这样的结构(类型->值映射,类型...

8得票1回答
将一系列序列(的序列)展平

我是使用boost::fusion。 假设我有以下内容: make_vector(1, make_vector('b', 3, make_vector(4, 5.5), "six"), 7, 8) 我希望能够创建一个函数f,使其具有以下特点: f(make_vector(1, make...

9得票3回答
Boost::Spirit::Qi。如何将内联解析器表达式转换为独立的语法,并如何拆分它们生成的元组?

我正在使用QI和Phoenix,希望编写一个小规则,返回4个布尔值作为语义动作内部函数调用的参数。我有几个需要这些参数的函数,目前我采用了以下方法: ( qi::_bool >> qi::_bool >> qi::_bool >> qi::_bool...

13得票5回答
Boost.Fusion运行时开关

我正在从文件中读取对象的类型:enum class type_index { ... }; type_index typeidx = read(file_handle, type_index{}); 根据类型索引,我想创建一个类型(从可能的类型列表中),并对其执行通用操作(对于每种类型使用相同...

7得票3回答
在C++中动态和静态地访问结构体成员

我希望在C++中有一个结构体(或类似的东西),可以动态地访问其成员。它应该有通用的getter和setter,接受成员名称作为字符串,并返回某种变体类型(例如boost::variant)。 我认为可以使用boost::fusion::map来实现它,通过添加表示每个成员名称的字符串,并在字...

9得票2回答
BOOST_FUSION_ADAPT_STRUCT的局限性

我尝试使用BOOST_FUSION_ADAPT_STRUCT宏,并尝试了一些天真的事情,比如使用Fusion来打印任意结构。 从这个文档中给出的示例代码开始,我无法对我的适配结构执行一些与Fusion序列允许的操作。 #include <boost/fusion/adapted.hp...

12得票1回答
访问boost fusion映射字段名

我一直在尝试使用一些boost fusion的东西来将普通的c结构体写入文件。 XML文件似乎是捕获数据并使其与其他工具兼容或手动编辑的好方法。 看起来我已经接近成功,但似乎缺少了一些基本的东西。 我正在使用与boost :: fusion快速启动页面上相似的东西:http://www.boo...

8得票1回答
如何遍历boost::fusion关联结构并以通用方式访问键

这是我在这个伟大的知识交流社区中提出的第一个问题,希望能得到一些帮助。 我试图实现一种通用的方法来创建PrintTo函数(后续用于GoogleTest)。 因此,以下代码只完成了工作的一半。它仅打印已定义结构体Foo::Bar的值。 #include <iostream> #...

7得票1回答
将包含字符串成员的类适应为合成属性。

我正在尝试将一个字符字符串解析为自定义类型symbol的属性,该类型包含一个std::string成员。我认为我可以在这里使用BOOST_FUSION_ADAPT_STRUCT,但它不起作用。 如果我将规则声明为rule<It, std::string(), space_type&gt...