Usando uma biblioteca de modelo
Um modelo é um pouco como uma macro.Como com uma macro, chamar um modelo faz com que expande (com a substituição de parâmetro apropriado) que você escreveu.Em o entanto, um modelo vai mais do que este permitir a criação de novas classes baseadas em tipos que você passar como parâmetros.Essas formas com segurança do novo implementar das classes de executar a operação expressa no código do modelo.
As bibliotecas de modelo como ATL diferem das bibliotecas de classe tradicionais C++ que normalmente são fornecidos apenas como código-fonte (ou como código-fonte com um pouco, tempo de execução de suporte) e não são inerentemente hierárquicos ou necessariamente sobre a natureza.Em vez de derivando de uma classe para obter a funcionalidade você desejar, você cria uma classe de um modelo.