User Tools

Site Tools


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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki