Estoy tratando de construir un AST con espíritu de impulso y he estado luchando con la forma de construir argumentos sintetizados cuando se utilizan expresiones lambda C++ 11 como acciones semánticas.¿Cómo construir un argumento sintetizado a partir de una acción semántica de C++ 11 lambda en boost spirit?
Decir que tengo una regla:
qi::rule<char*,ascii::space_type,SomeStruct()> rule = some_parser[[](some_type val){/*code to build SomeStruct from val*/}];
¿Cómo sabe mi lambda volver el argumento sintetizado (SomeStruct)? Por el valor de retorno? Porque qi :: _ val no está disponible en este contexto, ¿verdad? (Esto es un poco oscuro para mí, lo siento si esta pregunta no está bien formulada)
¡Gracias de antemano por cualquier apuntador en la dirección correcta!