Uso de una biblioteca de plantillas
Una plantilla es similar a una macro. Al igual que con una macro, invocar una plantilla hace que se expanda (con la sustitución de parámetros adecuada) en el código que ha escrito. Sin embargo, una plantilla va más allá de esto para permitir la creación de nuevas clases en función de los tipos que se pasan como parámetros. Estas nuevas clases implementan formas de realizar la operación expresada en el código de plantilla con seguridad de tipos.
Las bibliotecas de plantillas como ATL difieren de las bibliotecas de clases tradicionales de C++ en que normalmente solo se proporcionan como código fuente (o como código fuente con un poco de tiempo de ejecución de soporte) y no son inherente o necesariamente jerárquicos por naturaleza. En vez de derivar de una clase para obtener la funcionalidad que desee, cree una instancia de una clase desde una plantilla.