Callback Funktion mit map



  • Kann man durch einen Eintrag auf einem bestimmten Key in einer map eine Callback aufrufen. Was ich meine ist so etwas:

    Falls map-key = 1 Eintrag hat, Methode A als Callback
    Falls map-key = 2 Eintrag hat, Methode B als Callback
    

    So etwas möglich? Oder was könnte eventuell so ablaufen?



  • Also Deine Frage verstehe ich anders als dein Beispiel, aber es ist beides mögich und einfach:

    int main()
    {
        typedef int Key;
        typedef std::function<void(void)> Function;
    
        // Für ein Key ein Callback aufrufen
        std::map<Key, Function> callbacks;
    
        callbacks[1] = Foo;
        callbacks[2] = Bar;
    
        callbacks[1]();
        callbacks[2]();
    
        // Oder so?
        std::vector<Function> callbacks2;
    
        callbacks2.push_back(Foo);
        callbacks2.back()();  // Falls map-key = 1 Eintrag hat, Methode A als Callback
    
        callbacks2.push_back(Bar);
        callbacks2.back()();  // Falls map-key = 2 Eintrag hat, Methode B als Callback
    
    }
    

Anmelden zum Antworten