En C 20, la fonction des détails du contexte de l'appel est rendu possible avec std :: source_location. Cependant, l'utiliser avec des fonctions de modèle variadique s'est révélée difficile en raison du positionnement du paramètre Source_Location.
La situation de position
paramètres variables, habitant la fin de la liste des paramètres. Cela a entravé l'utilisation de std :: source_location pour les raisons suivantes:
première tentative:
template
void debug(Args&&... args, const std::source_location& loc = std::source_location::current());
échoue parce que les paramètres variadiques doivent résider à la fin.
La forme initiale peut être révélateur en introduisant une déduction Guide:
template
void debug(const std::source_location& loc = std::source_location::current(),
Args&&... args);
modèle cela permet des appels comme:
int main () { Debug (5, 'a', 3.14f, "foo"); }
Conclusion:
Grâce à l'utilisation des guides de déduction, les programmeurs C peuvent incorporer sans effort Std :: Source_Location dans des fonctions de modèle variadiques pour capturer les informations sur l'appel de la fonction. variadiques.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3