4

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

4

1 回答 1

3

最后我找到了解决方案。

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

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

于 2014-09-12T06:41:27.620 回答