Funktionsobjekte - operator() statisch?



  • Hallo,

    könnte bei Funktionsobjekten der operator() auch als statisch deklariert werden?
    Ungefähr so:

    struct myFunc : public std::unary_function< void, int > {
        static void operator() (int i) { /* Irgendwas machen */ }
    }; // myFunc
    


  • Was spricht gegen eine ganz normale Funktion?



  • drakon schrieb:

    Was spricht gegen eine ganz normale Funktion?

    Meine Funktion ist sehr komplex und braucht jede Menge Hilfsfunktionen (damit sie übersichtlicher bleibt).
    Da dacht ich mir es sei von Vorteil alles in einen Funktor zu packen.



  • daersc schrieb:

    könnte bei Funktionsobjekten der operator() auch als statisch deklariert werden?

    Nein. Du hast außerdem die Typ-Parameter für unary_function vertauscht.

    Dein Code wird auch nicht übersichtlicher, wenn Du etwas, was normale Funktionen hätten sein können, in einem struct verpackst. (!)


Anmelden zum Antworten