Аргумент boost::split_iterator для шаблона класса отсутствует

Я видел несколько примеров, которые показывают, как использовать split_iterator, но Visual Studio 2012 показывает мне эту ошибку: Error: argument for class template "boost::algorithm::split_iterator" is missing

Это мой код:

...

#include "boost/algorithm/string/iter_find.hpp"
#include "boost/algorithm/string/finder.hpp"

...

const std::string sintactic_production_rule_representation[] =
{
    ...

    "P → B eol P",
    "P → F eol P",

    ...
}

...

for(int i = 0; i < N_PRODUCTIONS_SINTLL; i++)
{
    std::vector<std::string> splittedProduction;
    boost::split_iterator(
        splittedProduction, 
        sintactic_production_rule_representation[i], 
        boost::first_finder("&rarr;")
    );
}

Я извлек iter_find.hpp и finder.hpp и зависимости в файлы ресурсов с помощью инструмента boost bcp.

Я также пробовал boost::split_iterator<std::string>(...) получить аргументы, не соответствующие ошибке.


person jmb95    schedule 16.01.2016    source источник
comment
boost::split_iterator — это шаблон класса, а не функция. Может быть, вы хотите использовать boost::split?   -  person Oleg Andriyanov    schedule 16.01.2016
comment
@OlegAndriyanov Могу ли я использовать split для разделения строки вместо одного символа?   -  person jmb95    schedule 16.01.2016
comment
Возможно, stackoverflow.com/a/15789561/3153012 является решением.   -  person jmb95    schedule 16.01.2016


Ответы (1)


Я пытаюсь использовать неправильную функцию повышения. Как указано в https://stackoverflow.com/a/15789561/3153012, я могу использовать split_regex для разделения с одним или несколькими персонаж.

person jmb95    schedule 16.01.2016