可以使用Factory而不是ADAPT_STRUCT来处理规则
Can spirit use a Factory instead of ADAPT_STRUCT to process rule?
我想在语义操作中使用工厂函数,但我无法使用phoenix或fusion找到正确的配方。
我的精神气规则看起来像:
object = type_identifier >> arg_list;
,我想让Fusion表演一些东西:
object = Factory(type_identifier)(arg_list)
代替使用BOOST_FUSION_ADAPT_STRUCT
来创建包含type_identifier
和arg_list
的结构。
这样的事情怎么能做到呢?谢谢。
是。原则上有三种方法:
- 依赖于公共构造器
- 使用语义动作(例如
qi::int_ [ qi::_val = boost::phoenix::construct<type_identifier>(qi::_1) ]
) -
使用属性转换特性(参见文档中的自定义Spirit的属性处理)。在本例中,您只需输入
qi::rule<It, Mytype()> r = qi::_int;
和相应的性状(
assign_to_attribute_from_value<MyType, imt>
)处理分配
相关文章:
- 警告处理为错误这里有什么问题
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 处理多个异常集合的C++方法
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 使用流处理接收到的数据
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 基于多个条件处理地图中的所有元素
- 如何用数字处理log(0)
- SSL上的`curl_easy_send`和`curl_asy_recv`:如何处理`CURLE_AGAIN`
- 错误处理.将系统错误代码映射到泛型
- 从文本文件中读取时钟时间和事件时间并进行处理
- 在运行时处理类型擦除的数据-如何不重新发明轮子
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 用于矢量处理的多个线程
- 对字符串进行排序时,在c++中处理sort()
- 如何在struct中处理大数组大小
- C++ 处理'struct'和字符串