Maison > développement back-end > C++ > le corps du texte

Les arguments du modèle peuvent-ils être déduits automatiquement en C à l'aide de « template » ?

Susan Sarandon
Libérer: 2024-11-05 02:43:01
original
298 Les gens l'ont consulté

Can Template Arguments Be Deduced Automatically in C   Using `template`?

Automatisation de la déduction d'arguments de modèle avec le modèle

Question :

Modèle Can les arguments doivent-ils être transmis au moment de la compilation sans spécifier explicitement leurs types ? Par exemple, au lieu de template pourrions-nous utiliser template?

Réponse :

L'approche mentionnée n'est pas possible en C . L'alternative la plus proche consiste à utiliser des macros :

<code class="cpp">#define AUTO_ARG(x) decltype(x), x

f.bar<AUTO_ARG(5)>();
f.bar<AUTO_ARG(&Baz::bang)>();</code>
Copier après la connexion

Une approche alternative consiste à utiliser une fonction génératrice qui déduit l'argument du modèle :

<code class="cpp">template <typename T>
struct foo {
    foo(const T&amp;) {} // do whatever
};

template <typename T>
foo<T> make_foo(const T&amp; x) {
    return foo<T>(x);
}</code>
Copier après la connexion

Maintenant, au lieu d'écrire :

<code class="cpp">foo<int>(5);</code>
Copier après la connexion

Nous pouvons simplement écrire :

<code class="cpp">make_foo(5);</code>
Copier après la connexion

Cette méthode automatise la déduction des arguments du modèle, offrant un moyen plus pratique de transmettre les arguments.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal