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

Les fonctions Consteval peuvent-elles légaliser les paramètres de fonction dans les paramètres de modèle en fonction des arguments de fonction ?

Patricia Arquette
Libérer: 2024-10-24 03:53:30
original
428 Les gens l'ont consulté

Can Consteval Functions Legalize Function Parameters in Template Parameters Dependent on Function Arguments?

Fonctions Consteval : limitations des paramètres de modèle dépendant des arguments de fonction

En C 17, définition de fonctions constexpr qui s'appuient sur des paramètres de modèle dépendants de la fonction les disputes étaient interdites. Alors que les fonctions consteval en C 20 promettent d'appliquer l'évaluation au moment de la compilation, cela signifie-t-il qu'un tel code peut désormais être légalisé ?

Question :

consteval int foo(int i) { return std::integral_constant::value; }. Ce code sera-t-il valable en C 20 ?

Réponse :

Non.

Explication :

Malgré l'introduction des fonctions consteval, le principe sous-jacent reste que les définitions de fonctions non-modèles ont un seul point de résolution de type. Légaliser le code proposé aurait des implications pour la règle de définition unique (ODR). De plus, l'article C 20 indique explicitement que les paramètres de fonction ne seront pas traités comme des expressions constantes de base en raison de potentielles incompatibilités de types.

Par conséquent, les paramètres de fonction ne peuvent pas être directement utilisés comme expressions constantes dans les dépendances des paramètres de modèle, même dans des contextes de fonctions consteval.

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
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!