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.
Syntaxfehler: 'Name1' nicht 'name2' erwartet
Syntaxfehler: unerwartetes Token 'token1', erwartet 'token2'
Syntaxfehler: "token1" war hier unerwartet; erwartet "token2"
Hinweise
Es gibt mehrere Möglichkeiten, diesen Fehler zu verursachen. In der Regel wird dies durch eine Tokensequenz verursacht, von der der Compiler nicht sinnvoll ist.
Beispiele
In diesem Beispiel wird ein Umwandlungsoperator mit einem ungültigen Operator verwendet.
// C2760.cpp
class B {};
class D : public B {};
void f(B* pb) {
D* pd1 = static_cast<D*>(pb);
D* pd2 = static_cast<D*>=(pb); // C2760
D* pd3 = static_cast<D*=(pb); // C2760
}
Der neue Lambda-Prozessor, der unter /std:c++20 oder höher oder höher /Zc:lambdaverfügbar ist, ermöglicht einige neue Konformitätsmodus syntaktische Überprüfungen in generischen Lambdas. Der ältere Lambda-Prozessor kompiliert diesen Code ohne Warnungen, aber der neue Lambda-Prozessor erzeugt Fehler C2760:
void f() {
auto a = [](auto arg) {
decltype(arg)::Type t; // C2760 syntax error: unexpected token 'identifier', expected ';'
};
}
Dieses Beispiel zeigt die richtige Syntax, die nun vom Compiler erzwungen wird, der in allen /std Modi funktioniert:
void f() {
auto a = [](auto arg) {
typename decltype(arg)::Type t;
};
}