Spirit X3 нет подходящей функции для вызова ‘move_to’

Почему это не компилируется?
(с комментариями r3 скомпилирую, но хочу точку с запятой в правиле)

#include <boost/spirit/home/x3.hpp>
#include <boost/fusion/include/adapt_struct.hpp>

#include <string>
#include <vector>

struct v
{
std::string value;
};

BOOST_FUSION_ADAPT_STRUCT
(
v,
(std::string, value)
)

using namespace boost::spirit::x3;

auto r1 = rule<struct s1, std::string>{} = lexeme[+alpha];

auto r2 = rule<struct s2, v>{} = r1;

using ast = std::vector<v>;

auto r3 = rule<struct s3, ast>{} = *(r2 >> ';');
//auto r3 = rule<struct s3, ast>{} = *r2;

int main()
{
std::string script("a;");
auto begin = script.begin();
auto   end = script.end();

ast a;

phrase_parse(begin, end, r3, space, a);

return a.size();
}

3

Решение

Как подсказал @jv_, я скачал развивать ветка. После этого код работал без каких-либо изменений.

5

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector