Boost :: Spirit :: QI parser: índice del elemento analizado

¿Es posible (usando Boost :: Spirit :: QI) analizar números de una cadena separada por comas para obtener el índice de cada número analizado?

Supongamos que tengo una cuerda"23,123,65,1" y quiero insertar cada uno de estos números en una matriz en las ubicaciones dadas (0, 1, 2, 3). Una forma de hacerlo sería analizar los números en un std :: vector y luego copiarlos en la fila de la matriz, pero no es particularmente rápido.

Actualmente estoy usando la variante vectorial:

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

Sería increíble si el analizador tuviera una devolución de llamada exitosa que tome una función lambda o una función similar.

Respuestas a la pregunta(1)

Su respuesta a la pregunta