#include #include // primary template template < typename T > bool less ( T v1, T v2 ) { return v1 < v2; } /* // explicit template specialization template<> bool less (const char* v1, const char* v2) { //bool less (const char* v1, const char* v2) { return strcmp(v1,v2)<0; } */ /* // partial specialization template< typename T> bool less (T* v1, T* v2){ return *v1 < *v2; } */ int main() { int i1=1; int i2=2; bool l1 = less(i1,i2); bool l2 = less(1.2,3.4); bool l3 = less("abcd","abcx"); bool l4 = less(&i1, &i2); std::cout << l1 << " " << l2 << " " << l3 << " " << l4 << std::endl; return 0; }