Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Chyba syntaxe: Očekávaný název1 není name2
Chyba syntaxe: neočekávaný token token1, očekávaný token2
Syntaktická chyba: Token1 byl zde neočekávaný, očekává se token2.
Poznámky
Existuje několik způsobů, jak tuto chybu způsobit. Obvykle je to způsobeno posloupností tokenů, o které kompilátor nemůže dávat smysl.
Příklady
V tomto příkladu se operátor přetypování používá s neplatným operátorem.
// 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
}
Nový procesor lambda dostupný pod /std:c++20 nebo novějším nebo v části /Zc:lambdaumožňuje některé syntaktické kontroly v režimu shody v obecných lambdach. Starší procesor lambda tento kód zkompiluje bez upozornění, ale nový procesor lambda způsobí chybu C2760:
void f() {
auto a = [](auto arg) {
decltype(arg)::Type t; // C2760 syntax error: unexpected token 'identifier', expected ';'
};
}
Tento příklad ukazuje správnou syntaxi, kterou teď vynucuje kompilátor, který funguje ve všech /std režimech:
void f() {
auto a = [](auto arg) {
typename decltype(arg)::Type t;
};
}