2009-07-13 31 views

Respuesta

10

El término "plantilla de función" se refiere a un tipo de plantilla. El término "función de plantilla" a veces se usa para significar lo mismo, y algunas veces para significar una función instanciada a partir de una plantilla de función. Esta ambigüedad se evita mejor usando la "plantilla de función" para la primera y algo así como "instancia de plantilla de función" o "instancia de una plantilla de función" para la última. Tenga en cuenta que una plantilla de función no es una función. La misma distinción se aplica a "plantilla de clase" frente a "clase de plantilla".

De this FAQ.

+1

Estoy de acuerdo con los puntos generales, sin de una plantilla de función "es el término a usar. En mi humilde opinión, "especialización de plantilla de función" está más cerca de la terminología estándar. También existe la pregunta sobre cómo llamar a funciones y clases que no son plantillas sino que son miembros de una plantilla de clase. Tienen mucho comportamiento en común con las plantillas de funciones, pero no es correcto llamarlas "plantillas de funciones". –

+0

Tengo la impresión de que cuando las personas dicen "especialización de plantilla", quieren decir una especialización parcial o completa explícitamente definida (obviamente siempre completa en el caso de una plantilla de función), en lugar de la función/clase que el compilador crea a partir de una definición de una plantilla. A menudo he visto que se usa "instanciación" para este último. ¿El estándar se refiere a este último como una especialización también? –

+0

En mi humilde opinión un nombre como "A < int >" es una especialización sin importar su contexto. Se puede usar como parte de una instanciación explícita o una especialización explícita o parcial. Pero también considero que es una especialización donde se usa para declarar un objeto, por ejemplo: "A * a;". Según el estándar, 14.2/1 describe cómo una especialización de plantilla (14.7) puede ser referida por el término gramatical 'template-id' y 14.7 incluye instancias implícitas. –

1

Plantilla de función es la terminología correcta (una plantilla para crear instancias de funciones).

Función de la plantilla es un sinónimo coloquial.

Por lo tanto, no hay diferencia alguna.

Cuestiones relacionadas