En MQL5, puede hacer con plantillas las funciones, los tipos de objetos (clases, estructuras, uniones) o los métodos independientes de dentro de ellos. En cualquier caso, la descripción de la plantilla tiene un título:
template <typename T [, typename Ti ... ]> |
El encabezado comienza con la palabra clave template, seguida de una lista separada por comas de parámetros formales entre corchetes angulares: cada parámetro se señala mediante la palabra clave typename y un identificador. Los identificadores deben ser únicos dentro de una definición concreta.
La palabra clave typename del encabezado de la plantilla le indica al compilador que el siguiente identificador debe tratarse como un tipo. En el futuro, es probable que el compilador de MQL5 admita otros tipos de parámetros que no sean de tipo, como hace el compilador de C++.
Este uso de typename no debe confundirse con el operador integrado typename, que devuelve una cadena con el nombre del tipo del argumento pasado.
Un encabezado de plantilla va seguido de una definición habitual de una función (método) o clase (estructura, unión), en la que los parámetros formales de la plantilla (identificadores T, Ti) se utilizan en instrucciones y expresiones en aquellos lugares en los que la sintaxis requiere un nombre de tipo. Por ejemplo, para las funciones de plantilla, los parámetros de plantilla describen los tipos de los parámetros de la función o el valor de retorno, y en una clase de plantilla, un parámetro de plantilla puede designar un tipo de campo.
Una plantilla es una definición completa. Una plantilla termina con la definición de una entidad (función, método, clase, estructura, unión) precedida del encabezamiento template.
Para los nombres de parámetros de plantilla, es habitual tomar identificadores de uno o dos caracteres en mayúsculas.
El número mínimo de parámetros es 1 y el máximo, 64.
Los principales casos de uso de los parámetros (utilizando el parámetro T como ejemplo) incluyen: