Templates wie in std::function?



  • Hallo,

    ich frage mich jetzt schon seit einiger Zeit wie man eine template Klasse/Funktion so machen kann wie std::function? Also dass man die Argumente per templates in Klammmern angibt und dann noch eine beliebige Anzahl davon?

    Mit std::function kann ich ja zum Beispiel sowas machen:

    std::function<double(int, std::string, bool /* etc, etc */)> my_foo;
    

    Wie ist die Syntax wenn man sowas selbst machen will? Finde da online irgendwie keine Beispiele, die behandeln alle nur "normale" templates...

    Viele Grüße,
    hs



  • Siehe hier. Das Template-Argument ist lediglich ein Funktionstyp.



  • Ja, aber wenn ich sowas schreiben will wie dort angegeben, bekommen ich einen Compiler-Fehler:

    template< class R, class... Args >
    class my_function<R(Args...)>
    {
    
    };
    

    -> Syntaxfehler: Es fehlt ';' vor '<'

    Dabei hab ich das einfach nur kopiert?



  • Das ist eine Templatespezialisierung... Schau nochmals genau die Seite an.


Log in to reply