### Instantiating a Template

The compiler cannot generate code for a template until you:

- declare the template class
- provide a template definition
- specify the data type(s) for the template

For information on the first two requirements, see Declaring and Defining Templates.

Specifying the data type(s) and other arguments for a template is called instantiating the template. Carbide.c++ gives you two ways to instantiate a template. You can let the compiler instantiate it automatically when you first use it, or you can explicitly create all the instantiations you expect to use.