Boost :: Spirit :: QI parser: индекс проанализированного элемента

Можно ли (используя Boost :: Spirit :: QI) проанализировать числа из строки, разделенной запятыми, чтобы я получил индекс каждого проанализированного числа?

Предположим, у меня есть строка"23,123,65,1" и я хочу вставить каждое из этих чисел в матрицу в заданных местах (0, 1, 2, 3). Один из способов сделать это состоит в том, чтобы проанализировать числа в std :: vector, а затем скопировать их в строку матрицы, но это не особенно быстро.

В настоящее время я использую векторный вариант:

Matrix data(10, 4);
int row = 0;
int col = 0;
std::string str = "23,123,65,1";
std::vector<double> res;
if (qi::parse(str.begin(), str.end(), qi::double_ % ',', res))
{
  std::for_each(res.begin(), res.end(), [&col, &data, &row](double elem) {

      data(row, col) = elem;
      col++;
});
}

Было бы замечательно, если бы у парсера был успешный обратный вызов, который принимает лямбда-функцию или аналогичную функцию.

Ответы на вопрос(1)

Ваш ответ на вопрос