C++ Language/Templates
A "template" is C++ source code that doesn't get compiled into machine language at the time it's encountered by the compiler. Instead, the compiler remembers that code. The template contains one or more template-parameters; later, the compiler will perform a compilation of that code when it first needs a "specialization" of it. That specialization involves substituting some C++ type in place of each template-parameter.