2014-09-11 21 views
3

如何在單獨的翻譯單元中定義船長語法? 什麼是輸出屬性應該是什麼類型?或者我可以簡單地指定boost::spirit::x3::unused_typeAttribute模板參數爲boost::spirit::x3::rule模板類爲skipper語法?我認爲skipper語法應該只是在內部將輸入迭代器移動到空白,換行符,註釋等處。從性能和內存分配/釋放的角度來看,它更好。如何爲這樣的語法定義一個上下文類型,我應該提供給BOOST_SPIRIT_INSTANTIATE宏?使用Boost.Spirit定義獨立翻譯單元中的船長X3

+1

我想這是一個標誌,我應該開始看着Spirit X3:/ – sehe 2014-09-11 08:56:03

回答

3

最後我找到了解決方案。

using skipper_parser = x3::rule< class skipper_class, x3::unused_type const >;是船長解析器類型的定義(const-返回類型的重要性)。

BOOST_SPIRIT_INSTANTIATE(skipper_parser, iterator_type, x3::unused_type)parse_rule的模板函數的實例化,有些函數在單獨的翻譯單元中。