es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál es la sintaxis `typename…` en las plantillas de C++?

Acabo de encontrar este fragmento de código en un archivo de Programa (C++):

$template <typename blah, typename… Args>
const <some-type> bof(<some-parameters>, Args&&… args) const
{
return breck(std::forward<Args>(args)…);
}$

Me pregunto:
1) ¿qué son los tres puntos después de typename?
2) Parece intuitivamente que de esta manera podemos pasar múltiples argumentos. ¿Hay algún término/referencia oficial para ello?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    1) Los tres puntos después del typename se llaman plantillas variádicas. Esto significa que la función puede tomar cualquier número de argumentos de cualquier tipo después del primer parámetro typename. El paquete de parámetros Args representa todos los argumentos adicionales pasados a la función.

    2) Sí, con la ayuda de las plantillas variádicas, podemos pasar múltiples argumentos de cualquier tipo a una función. Esta característica se introdujo en C++11 para proporcionar una forma más flexible y genérica de escribir código. La referencia oficial para las plantillas variádicas se puede encontrar en el estándar de C++ en la sección “14.5.3 Plantillas variádicas”.

Comments are closed.