¿Cuál es la diferencia entre la plantilla de función y la función de plantilla?¿Cuál es la diferencia entre la plantilla de función y la función de plantilla?
Respuesta
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.
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". –
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? –
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
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.
Comeau Informática (fabricante de C++ Comeau Compilador) tiene un FAQ en su sitio con la respuesta a esa pregunta:
What is the difference between a template function and a function template?
Saludos,
Ovanes
- 1. Prioridad entre la función normal y la función de plantilla
- 2. ¿cuál es la diferencia entre la especialización explícita de plantilla y la función normal?
- 3. Cuál es la diferencia entre la función() {}() y la función() {}()
- 4. ¿Cuál es la diferencia entre "función" y "función"? en VIM?
- 5. ¿Cuál es la diferencia entre función (myVar) y (función) myVar?
- 6. Cuál es la diferencia entre `$ (ventana) .load (función() {})` y `$ (función() {})`
- 7. ¿Cuál es la diferencia entre función y función
- 8. ¿Cuál es la diferencia entre un tema y una plantilla?
- 9. Parámetro de la plantilla de la plantilla en la función
- 10. ¿Cuál es la diferencia entre la función exec() de RegExp y la función match() de String?
- 11. Restringir la función de plantilla
- 12. ¿cuál es la diferencia entre declaración de función y firma?
- 13. ¿Cuál es la diferencia entre "plantilla <class T>" y "plantilla <typename T>"?
- 14. ¿Error en la especialización de la plantilla de función?
- 15. función de plantilla no juegan bien con la función de miembro de la plantilla de clase
- 16. ¿Cuál es la diferencia entre una subrutina y una función?
- 17. ¿Cuál es la diferencia entre un algoritmo y una función?
- 18. ¿Cuál es la diferencia entre un método y una función?
- 19. Diferencia de JavaScript entre la función y la nueva función
- 20. nombre de la plantilla y la plantilla Identificación del
- 21. Función de la plantilla como argumento de plantilla
- 22. Diferencia entre la especialización explícita y las funciones normales al sobrecargar una función de plantilla
- 23. prioridad de la función de la plantilla es diferente entre VS2005 y VS2010
- 24. Plantilla de plantilla C++ Función
- 25. ¿Cuál es la diferencia entre usar @Transactional y la plantilla de Spring?
- 26. Envoltura de la función de plantilla C++
- 27. dirección de la función de plantilla C++
- 28. especialización parcial de la plantilla de función
- 29. Diferencia entre la plantilla de control y DataTemplate en WPF
- 30. Visibilidad de la plantilla de especialización de la función C++
relacionadas: http: // stackoverflow .com/questions/879535/qué es la diferencia entre una plantilla de clase y una plantilla de clase – avakar