Boost :: Spirit :: QI parser: índice do elemento analisado

É possível (usando Boost :: Spirit :: QI) analisar números de uma string separada por vírgulas para que eu obtenha o índice de cada número analisado?

Suponha que eu tenha uma string"23,123,65,1" e quero inserir cada um desses números em uma matriz em locais determinados (0, 1, 2, 3). Uma maneira de fazer isso seria analisar os números em um std :: vector e depois copiá-los para a linha da matriz, mas isso não é particularmente rápido.

Atualmente estou usando a variante do vetor:

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

Seria ótimo se o analisador tivesse um callback de sucesso que tivesse uma função lambda ou um recurso semelhante.

questionAnswers(1)

yourAnswerToTheQuestion