Definition - What does Template mean?

A template is a C++ programming feature that permits function and class operations with generic types, which allows functionality with different data types without rewriting entire code blocks for each type.

Templates are a valuable utility in C++, especially when used with operator overloading and multiple inheritance. Templates reduce the effort associated with coding different data types to a single set of code and reduce debugging efforts.

Techopedia explains Template

C++ provides the following two types of templates used to implement general constructs, such as lists, queues, vectors and stacks:

  • Class template: Resembles a regular class definition but is prefixed by the following: template <class typename="" identifier="">, followed by the class body declaration, including member data and functions. Class template member function declarations and definitions are in the same header file. C++ class templates are best suited to container classes.
  • Function template: Implemented through template parameters, which is a special parameter type used to pass a type as a function argument. Thus, functionality may be adapted to more than one type or class without repeating the entire code. The format to declare a function template with a type parameter is either template <class identifier> function_declaration or template <typename identifier> function_declaration. There is no difference between the class and typename keywords.
Templates generally require type-checking at compile-time.

Template-generated code may be overriden by providing special definitions for specific types, which is known as template specialization. A special version of a function for a given set of template arguments is known as explicit specialization. A class template specialized by a subset of its parameters is known as a partial template specialization. Full specialization occurs f every parameter is specialized.

This definition was written in the context of C++
Share this:

Connect with us

Email Newsletter

Join thousands of others with our weekly newsletter

The 4th Era of IT Infrastructure: Superconverged Systems
The 4th Era of IT Infrastructure: Superconverged Systems:
Learn the benefits and limitations of the 3 generations of IT infrastructure – siloed, converged and hyperconverged – and discover how the 4th...
Approaches and Benefits of Network Virtualization
Approaches and Benefits of Network Virtualization:
Businesses today aspire to achieve a software-defined datacenter (SDDC) to enhance business agility and reduce operational complexity. However, the...
Free E-Book: Public Cloud Guide
Free E-Book: Public Cloud Guide:
This white paper is for leaders of Operations, Engineering, or Infrastructure teams who are creating or executing an IT roadmap.
Free Tool: Virtual Health Monitor
Free Tool: Virtual Health Monitor:
Virtual Health Monitor is a free virtualization monitoring and reporting tool for VMware, Hyper-V, RHEV, and XenServer environments.
Free 30 Day Trial – Turbonomic
Free 30 Day Trial – Turbonomic:
Turbonomic delivers an autonomic platform where virtual and cloud environments self-manage in real-time to assure application performance.