Das folgende Code-Beispiel stammt aus dem Buch
 
  Objektorientiertes Programmieren in C++
  - Ein Tutorial für Ein- und Umsteiger
 von Nicolai Josuttis, Addison-Wesley München, 2001
 
  © Copyright Nicolai Josuttis 2001
#include <iostream>
#include <cstring>
template <typename T>
const T& max (const T& a, const T& b)
{
    std::cout << "max<>() fuer T" << std::endl;
    return (a > b ? a : b);
}
template <typename T>
T*const& max (T*const& a, T*const& b)
{
    std::cout << "max<>() fuer T*" << std::endl;
    return (*a > *b ? a : b);
}
inline const char* max (const char* a, const char* b)
{ 
    std::cout << "max<>() fuer char*" << std::endl;
    return (std::strcmp(a,b) > 0 ? a : b);
}