Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
erro de sintaxe: esperado 'name1' não 'name2'
erro de sintaxe: token inesperado 'token1', esperado 'token2'
erro de sintaxe: 'token1' foi inesperado aqui; 'token2' esperado
Observações
Há várias maneiras de causar esse erro. Normalmente, é causado por uma sequência de token que o compilador não consegue entender.
Exemplos
Neste exemplo, um operador de fundição é usado com um operador inválido.
// 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
}
O novo processador lambda disponível em /std:c++20 ou posterior, ou em /Zc:lambda, permite algumas novas verificações sintáticas de modo de conformidade em lambdas genéricas. O processador lambda herdado compila esse código sem avisos, mas o novo processador lambda produz o erro C2760:
void f() {
auto a = [](auto arg) {
decltype(arg)::Type t; // C2760 syntax error: unexpected token 'identifier', expected ';'
};
}
Este exemplo mostra a sintaxe correta, agora imposta pelo compilador, que funciona em todos os /std modos:
void f() {
auto a = [](auto arg) {
typename decltype(arg)::Type t;
};
}