Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
syntaxfel: förväntat "name1" inte "name2"
syntaxfel: oväntad token 'token1', förväntad 'token2'
syntaxfel: "token1" var oväntat här; förväntad "token2"
Anmärkningar
Det finns flera sätt att orsaka det här felet. Vanligtvis orsakas det av en tokensekvens som kompilatorn inte kan förstå.
Exempel
I det här exemplet används en gjutningsoperator med en ogiltig operator.
// 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
}
Den nya lambda-processorn som är tillgänglig under /std:c++20 eller senare, eller under /Zc:lambda, möjliggör vissa nya syntaktiska kontroller i överensstämmelseläge i generiska lambdas. Den äldre lambda-processorn kompilerar den här koden utan varningar, men den nya lambda-processorn genererar felet C2760:
void f() {
auto a = [](auto arg) {
decltype(arg)::Type t; // C2760 syntax error: unexpected token 'identifier', expected ';'
};
}
Det här exemplet visar rätt syntax, som nu framtvingas av kompilatorn, som fungerar i alla /std lägen:
void f() {
auto a = [](auto arg) {
typename decltype(arg)::Type t;
};
}