Templateprogrammierung. Bestimmte Typen verbieten



  • Hallo,

    ich möchte gerne eine Templateklasse erstellen. Jedoch soll die Klasse nicht mit allen Datentypen erstellt werden können. So zum Beispiel soll nur int und double erlaubt sein.

    template <typename T>
    class A {
    ...
    };
    
    A<int> ob1;     //erlaubt
    A<double> ob2;  //erlaubt
    A<string> ob3;  //soll nicht erlaubt sein
    

    Vielen Dank für eure Hilfe



  • malloc2131 schrieb:

    Templateklasse

    Klassentemplate.

    Jedoch soll die Klasse nicht mit allen Datentypen erstellt werden können.

    Warum?

    So zum Beispiel soll nur int und double erlaubt sein.

    template <typename T>
    class A {
      static_assert(std::is_same<T, int>::value || std::is_same<T, double>::value,
                    "only int or double allowed (for no reason, just to annoy you)");
    };
    

Anmelden zum Antworten