E2480 Impossible d'impliquer des paramètres de modèle dans les arguments de spécialisation partielle complexe (C++)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Erreurs et avertissements du compilateur (C++) - Index

Une spécialisation partielle ne peut pas faire référence à d'autres paramètres de modèle dans une expression d'argument sans valeur, sauf si elle est simplement une référence directe au paramètre de modèle. Par exemple :



 template<int A, int B, int C> class foo;



 template<int A> class foo<A+5, A, A+10>;



La spécialisation partielle présente deux arguments illégaux. 'A+5' est une expression complexe car elle utilise 'A' d'une façon autre que comme simple argument direct. La référence à 'A' dans le second argument est correcte, mais le troisième argument est aussi illégal car il fait référence à 'A' de façon complexe également.