E2386 Parameter 'parameter' kann nicht in einen komplexen Teil-Spezialisierungsausdruck aufgenommen werden (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

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

Bei der Deklaration oder Definition einer Teil-Spezialisierung für eine Template-Klasse ist es nicht erlaubt, beliebige typlose Template-Parameter in komplexen Ausdrücken zu verwenden. Die Parameter dürfen nur über ihren Namen referenziert werden. Ein Beispiel:



 template<class T, int U>
 class foo;
 template<int U>
 class foo<char, U * 3>;  // Fehler: "U * 3" ist ein komplexer Ausdruck
 template<int U>
 class foo<char, U>;      // OK: "U" ist ein einfacher Ausdruck, der über seinen Namen referenziert wird