35 lines
676 B
C++

#include <iostream>
#include <cstring>
// primary template
template < typename T >
bool less ( T v1, T v2 ) {
return v1 < v2;
}
/*
// explicit template specialization
template<>
bool less<const char*> (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*> (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;
}