boost::spirit::qi member von _val() aufrufen



  • Die Frage ist: Wie rufe ich Memberfunktionen von _val auf in semantic actions, die Inhalte von _val verändern.

    Ist im Tutorial enthalten:

    eps [_val = 20] // sofern operator= vorhanden
    

    Etwas in der Art fehlt mir:

    eps [_val().set(20)] // _val() ist temporary object | ganzer Ausdruch ist keine Funktion
    eps [std::bind(&RValue::set, &_val(), 20)] // &_val() ist adresse auf temporäres Objekt
    


  • Ich habe in Erinnerung, dass das irgendwie mit ->* geht. Vielleicht so?

    (_val->*&foo::bar)(...)
    

    Steht aber bestimmt irgendwo in der Doku.



  • phoenix::bind(&PRValue::set<int>, _val, 20)

    wäre schonmal eine möglichkeit.

    EDIT: War eigentlich klar dass es ein bind von phoenix gibt...


Anmelden zum Antworten