Perhaps the most powerful feature of C++ is the ability to write a template and then use that template multiple times, with different template arguments each time. The ability to carve out exceptions to the rule magnifies that power. That is, you can tell the compiler to use a template for most template arguments, except that for certain argument types, it should use a different template definition. This Exploration introduces this feature.
Instantiation and Specialization
Template terminology is tricky. When you use a template, it is known as instantiating the template. A template instance ...