我很难得到一个小的boost :: spirit语法来编译.这是一个较大的语法的一小部分,我遇到了麻烦,我正在尝试测试较小的部分来发现我的问题.基本上这个语法应该做的是解析一个double值,它有任意数量的前导/尾随空格.但是当我尝试编译时,我得到了一些我不理解的问题清单.欢迎任何帮助!代码:grammar.h
#ifndef GRAMMAR_H
#define GRAMMAR_H
#include <boost/spirit/include/qi.hpp>
template <typename Iterator>
struct point_double_grammar : boost::spirit::qi::grammar<Iterator, double()>
{
/**
* Constructor used to create the grammar.
* @param is_point boolean indicating if the point is used as decimal.
* @author Luc Kleeven
**/
point_double_grammar() : point_double_grammar::base_type(d)
{
d = *boost::spirit::qi::lit(' ') >> boost::spirit::qi::double_ >> *boost::spirit::qi::lit(' ');
}
boost::spirit::qi::rule<Iterator, double()> d;
};
#endif // GRAMMAR_H
Run Code Online (Sandbox Code Playgroud)
main.cpp中
#include "grammar.h"
int main(int argc, char *argv[])
{
point_double_grammar<std::string::iterator> point_grammar();
bool result = false;
double …Run Code Online (Sandbox Code Playgroud)