Templates mit Default-Werten - wie?



  • Ich möchte ein Template erstellen, in dem der 2. Parameter einen Default-Wert hat, also so etwa

    template <class T, class U = <int> >
    ...
    

    So gehts aber nicht. Wie schreibe ich das richtig?



  • Default Wert oder Default Typ?

    Wert:

    struct foo { };
    template<class T,class B=foo> class x { };
    

    Typ:

    template<class T,int B> class x { };
    


  • @kingruedi
    Du bringst hier was durcheinander.
    Es gibt zwei verschiedene Sorten von Templateparametern.
    1. type-Parameter:

    template <class T> class Foo {};
    

    2. non-type-Parameter:

    template <int T> class Foo {};
    

    (Default)-Argumente für 1. sind *Typen*.

    template <class T = int> class Foo {};
    

    (Default)-Argumente für 2. sind konstante integrale *Werte*:

    template <int T = 4> class Foo {};
    

    In deinem ersten Beispiel gibt es also keinen Default-Wert und in deinem zweiten keinen Default-Typ. Die Überschriften sind deshalb sehr verwirrend. Zumindest verwirren sie mich 🙂


Anmelden zum Antworten