c_-_c_templates:function_template_-_get_maximum_of_two_pointers
C - C++ Templates - Function Template - Get Maximum of Two Pointers
#include <iostream> #include <cstring> #include <string> // Maximum of two values of any type. template <typename T> inline T const& max (T const& a, T const& b) { return a < b ? b : a; } // Maximum of two pointers. template <typename T> inline T* const& max (T* const& a, T* const& b) { return *a < *b ? b : a; } // Maximum of two C-strings. inline char const* const& max (char const* const& a, char const* const& b) { return std::strcmp(a,b) < 0 ? b : a; } int main () { int a=7; int b=42; std::cout<<"\n\n" << ::max(a,b); // max() for two values of type int. std::string s="hey"; std::string t="you"; std::cout<<"\n\n" << ::max(s,t); // max() for two values of type std::string. int* p1 = &b; int* p2 = &a; std::cout<<"\n\n" << ::max(p1,p2); // max() for two pointers. char const* s1 = "David"; char const* s2 = "Nico"; std::cout<<"\n\n" << ::max(s1,s2); // max() for two C-strings. }
c_-_c_templates/function_template_-_get_maximum_of_two_pointers.txt · Last modified: 2020/07/15 10:30 by 127.0.0.1