LINUX.ORG.RU

Задание количества подстановочных аргументов (placeholders)

 , , ,


0

1

При попытке распарсить в одном правиле больше девяти аргументов валятся ошибки о некорректности подстановочных символов qi::_10, qi::_11 и т.д., хотя задан define, требуемый документацией. Где я ошибся, и как это поправить?

так он там ругается и на std::placeholders::_11, значит, где-то плейсхолдер из qi использует stdшную штуку, наверное можно или самому доопределить _11 и _12, или посмотреть, какой дефайн позволит в коде std определить больше параметров.

anonymous
()
Ответ на: комментарий от anonymous

ругается и на std::placeholders::_11

Не, он предлагает его, как альтернативу, не найдя qi::_11. Вроде, когда-то я собирал грамматику с количеством placeholders большим десяти, но не могу этот исходник отыскать.

one_more_hokum ★★★
() автор топика
14 ноября 2012 г.

Наконец то собрался добить этот вопрос, и вот что получилось: для парсинга в std::tuple элементов, количеством больше девяти, необходимо до spirit-овских заголовков определить три макроса

#define PHOENIX_LIMIT                   20 /* Или сколько там надо их парсить... */
#define FUSION_MAX_VECTOR_SIZE          PHOENIX_LIMIT
#define BOOST_RESULT_OF_NUM_ARGS        PHOENIX_LIMIT
И всё замечательным образом конпелируется, и работает.

one_more_hokum ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.