boost :: spirit :: reglas de compatibilidad de atributos x3, intuición o código?

¿Hay algún documento en algún lugar que describa cómo varias operaciones de definición de reglas spirit :: x3 afectan la compatibilidad de atributos?

Me sorprendió cuando:

x3::lexeme[ x3::alpha > *(x3::alnum | x3::char_('_')) ]

no se pudo mover a una estructura adaptada a la fusión:

struct Name {
    std::string value;
};

Por el momento, eliminé el primer carácter alfabético obligatorio, pero aún me gustaría expresar una regla que define que la cadena de nombre debe comenzar con una letra. ¿Es esta una de esas situaciones en las que necesito intentar agregareps alrededor hasta que funcione, o hay una razón establecida por la que lo anterior no podría funcionar?

Pido disculpas si esto se ha escrito en alguna parte, no pude encontrarlo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta