Recherche…


Un modèle avec un pack de paramètres

template<class ... Types> struct Tuple {};

Un paquet de paramètres est un paramètre de modèle acceptant zéro ou plusieurs arguments de modèle. Si un gabarit a au moins un paquet de paramètres est un gabarit variadic .

Extension d'un pack de paramètres

Le pattern parameter_pack ... est développé en une liste de substitutions de parameter_pack séparées par des virgules avec chacun de ses paramètres

template<class T> // Base of recursion
void variadic_printer(T last_argument) {
    std::cout << last_argument;
}

template<class T, class ...Args> 
void variadic_printer(T first_argument, Args... other_arguments) {
  std::cout << first_argument << "\n";
  variadic_printer(other_arguments...); // Parameter pack expansion
}

Le code ci-dessus invoqué avec variadic_printer(1, 2, 3, "hello"); estampes

1
2
3
hello


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow