// Time-stamp: "(15.11.01 16:10) spectemplatef.cpp [Klaus Wachtler (aw38)]" #include <iostream> using namespace std; // prüft, ob wert im Bereich [0..N-1] liegt, und // liefert dementsprechend "ja" oder "nö" zurück: template <class T, int N> const char *pruefe( T wert ) { return ( T(0)<=wert && wert<N ) ? "ja" : "nö"; } // spezielle Version für T==unsigned und N==10: template<> const char *pruefe<unsigned,10>( unsigned wert ) { return ( wert<10 ) ? "jau" : "nö"; } int main( int nargs, char **args ) { // Aufruf der allgemeinen (generischen) Funktion: cout << pruefe<int,10>( 5 ) << endl; // 5<10 "ja" cout << pruefe<int,10>( 15 ) << endl; // 15<10 "nö" cout << pruefe<double,60>( 50.0 ) << endl; // 50.0<60.0 "ja" // Aufruf der speziellen Version: cout << pruefe<unsigned,10>( 5u ) << endl; // 5u<10u "jau" } // main( int nargs, char **args )