【问题标题】:Defining skipper in separate translation unit using Boost.Spirit X3使用 Boost.Spirit X3 在单独的翻译单元中定义船长
【发布时间】:2014-09-11 08:55:29
【问题描述】:

如何在单独的翻译单元中定义skipper语法? 输出属性的类型应该是什么?或者我可以简单地将boost::spirit::x3::unused_type 指定为Attribute 模板参数到boost::spirit::x3::rule 用于船长语法的模板类吗?我认为 skipper 语法应该只在内部将输入迭代器向前移动到空格、换行符、cmets 等。它在性能和内存分配/释放方面更好。如何为这种语法定义上下文类型,我应该提供给BOOST_SPIRIT_INSTANTIATE宏?

【问题讨论】:

  • 我想这是我应该开始关注 Spirit X3 的标志:/

标签: c++ boost-spirit-qi boost-spirit-x3


【解决方案1】:

我终于找到了解决办法。

using skipper_parser = x3::rule< class skipper_class, x3::unused_type const >;是skipper解析器类型的定义(const-返回类型的重要性很重要)。

BOOST_SPIRIT_INSTANTIATE(skipper_parser, iterator_type, x3::unused_type)parse_rule 模板函数的实例化,用于在单独的翻译单元中的船长。

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 1970-01-01
    • 2011-11-01
    相关资源
    最近更新 更多