E2480 Template-Parameter können nicht in komplexe Teil-Spezialisierungsargumente aufgenommen werden (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Compiler-Fehler und -Warnungen (C++) - Index

Eine Teil-Spezialisierung darf keine anderen Template-Parameter in einem Argumentausdruck ohne Wert referenzieren, außer es handelt sich um eine direkte Referenz auf einen Template-Parameter. Ein Beispiel:



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



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



Die Teil-Spezialisierung hat zwei ungültige Argumente. 'A+5' ist ein komplexer Ausdruck, weil 'A' nicht als direktes Argument verwendet wird. Die Referenz auf 'A' in dem zweiten Argument ist korrekt. Das dritte Argument ist wiederum unzulässig, weil 'A' komplex referenziert werden.