// ========================================================================== // $Id: min_template_special.cpp,v 1.3 2014/10/22 20:26:07 jlang Exp $ // CSI2372 example Code for lecture 9 // ========================================================================== // (C)opyright: // // Jochen Lang // SITE, University of Ottawa // 800 King Edward Ave. // Ottawa, On., K1N 6N5 // Canada. // http://www.site.uottawa.ca // // Creator: jlang (Jochen Lang) // Email: jlang@site.uottawa.ca // ========================================================================== // $Log: min_template_special.cpp,v $ // Revision 1.3 2014/10/22 20:26:07 jlang // Update for use of array and forward_list. // // Revision 1.2 2010/11/03 14:40:41 jlang // char is not const char // // Revision 1.1 2006/10/29 00:32:05 jlang // Check in for lecture 9 // // // ========================================================================== #include #include using std::cout; using std::endl; template inline T min(T g, T d) { return ((g < d) ? g : d); } #if 1 template <> inline const char* min( const char* g, const char* d ) { if ( strcmp( g, d ) < 0 ) { return g; } return d; } #endif int main() { int i1=3,i2=8,i3=0; const char strA[] = "A little bigger"; const char strB[] = "A little smaller"; i3 = min(i1,i2); cout << "min(" << i1 << ", " << i2 << ") = " << i3 << endl; const char* strResult = min(strA,strB); cout << "min(" << strA << ", " << strB << ") = " << strResult << endl; }