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.