beschraenkte template funktion



  • hola leute

    gibts eine moeglichkeit eine template funktion zu schreiben, die nur fuer bestimmte datentypen anwendbar ist ? nur fuer die grunddatentypen von c(++), pointer nicht eingerechnet. oder muss ich dann die funktion fuer int ,unsigned int, short, unsigned short usw. alle extra tippen ?

    Meep Meep



  • Afaik geht das nicht...



  • mit boost geht das so:

    template<class T>
    void foo(T){
        BOOST_STATIC_ASSERT(boost::is_fundamental<T>::value);
        //und nun folgt das,was die funktion tun soll...
    }
    

    natürlich kann foo nun immernoch spezialisiert werden, aber sonst wird immer eine statische exception geworfen, wenn T kein fundamentaler typ(integral,floating point oder void) ist.


Anmelden zum Antworten