Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
'parameter': Die Adresse eines Vorlagenparameters kann nicht verwendet werden.
Bemerkungen
Sie können die Adresse eines Vorlagenparameters nicht übernehmen, es sei denn, es handelt sich um einen Wert. Typparameter sind keine Werte, da sie keine Adresse haben. Werte ohne Typ in Vorlagenparameterlisten, die nicht lvalues sind, haben auch keine Adresse.
Example
Dies ist ein Beispiel für Code, der den Compilerfehler C2891 verursacht, da der als Vorlagenparameter übergebene Wert eine compilergenerierte Kopie des Vorlagenarguments ist.
template <int i> int* f() { return &i; }
Vorlagenparameter, die lvalues sind, z. B. Verweistypen, können ihre Adresse übernehmen.
template <int& r> int* f() { return &r; }
Um diesen Fehler zu beheben, übernehmen Sie nicht die Adresse eines Vorlagenparameters, es sei denn, es handelt sich um einen Wert.