C++ Programming Guide

Template Specialization Definition

You must define all template specializations that you declare. The following examples define the functions declared in the preceding section.


template <> unsigned twice<unsigned>( unsigned original )
    { return original << 1; }


#include <string.h>
template <> void sort<char*>( Array<char*> store )
    { int num_elems = store.GetSize( );
      for ( int i = 0;  i < num_elems-1;  i++ )
          for ( int j = i+1;  j < num_elems;  j++ )
              if ( strcmp( store[j-1], store[j] ) > 0 )
                  { char *temp = store[j];
                    store[j] = store[j-1];
                    store[j-1] = temp; } }