Example of an Explicitly Defined Template Function

The following explicitly defined template function compares two strings and returns a value indicating whether more than 5 % of the characters differ between the two strings:

#include <string.h>
int approximate(char *first, char *second)
{
      if (strcmp(first,second) == 0)
            return 1; // strings are identical

      double difct=0;
      int maxlen=0;

      if (strlen(first)>strlen(second))
            maxlen=strlen(first);

      else maxlen=strlen(second);
      for (int i=0; i<=maxlen ; ++i)
            if ( first[i] != second[i] ) difct++;
      return int((difct / maxlen) <= .05  );
}

Given this definition, the function call: approximate("String A","String B"); invokes the explicitly defined function above, and no template function is generated.