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

## Le C 17 peut-il obtenir une déduction partielle des arguments du modèle de classe ?

Linda Hamilton
Libérer: 2024-10-25 06:20:28
original
258 Les gens l'ont consulté

## Can C  17 Achieve Partial Class Template Argument Deduction?

Déduction partielle des arguments de modèle de classe en C 17

En C 17, la déduction d'arguments de modèle de classe (CTAD) permet la déduction d'arguments de modèle en fonction des arguments transmis à un fonction ou constructeur. Cependant, ce processus nécessite actuellement que tous ou aucun des arguments soient spécifiés.

La question se pose de savoir s'il est possible de spécifier partiellement les arguments du modèle et de faire déduire les arguments restants. Par exemple :

<code class="cpp">Base<V = bool> val1(1, 4.);        // U & V deduced --> Base<int, double, bool>
Base<T = bool, T =int> val2(5.);  // V deduced     --> Base<bool, int, double></code>
Copier après la connexion

Cependant, tenter d'utiliser des modèles d'alias pour y parvenir, tels que :

<code class="cpp">template<class T, class U> using Base2 = Base<T, U, double>;

void func() {
    NewBase2 val(1, 2);
}</code>
Copier après la connexion

entraîne une erreur de compilation.

Actuellement, CTAD ne prend pas en charge la déduction partielle. L'article P1021R0, qui proposait cette fonctionnalité, n'a pas été accepté. Cependant, C 20 peut inclure la prise en charge des modèles d'alias (P1814) et des agrégats (P1816), ce qui pourrait constituer une solution de contournement.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!