Boost :: Parser :: Spirit :: QI: indeks analizowanego elementu

Czy jest możliwe (używając Boost :: Spirit :: QI) do parsowania liczb z rozdzielonego przecinkami łańcucha, tak że otrzymam indeks każdego przeanalizowanego numeru?

Przypuśćmy, że mam ciąg"23,123,65,1" i chcę wstawić każdą z tych liczb do macierzy w określonych miejscach (0, 1, 2, 3). Jednym ze sposobów jest przeanalizowanie liczb w std :: vector, a następnie skopiowanie ich do wiersza macierzy, ale nie jest to szczególnie szybkie.

Obecnie używam wariantu wektorowego:

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++;
});
}

Byłoby wspaniale, gdyby parser miał wywołanie zwrotne z powodzeniem, które pobiera funkcję lambda lub podobną funkcję.