Compartilhar via


Erro do compilador C2601

'função': definições de função locais são inválidas

Observações

O código tenta definir uma função dentro de uma função.

Ou pode haver uma chave extra/ausente próximo à localização do erro C2601.

Exemplos

Definir função dentro de uma função

Expressões Lambda podem ser usadas para emular o comportamento das funções locais:

// C2601a.cpp
int main()
{
    int increment(int value)   // C2601
    {
        return value + 1;
    }

    // Try the following line instead:
    // auto increment = [](int value) { return value + 1; };

    int two = increment(1);
}

Chave de fechamento ausente

Se uma função anterior estiver sem uma chave de fechamento, a função subsequente será usada para ser uma função local:

// C2601b.cpp
void func()
{
// missing '}' brace here

int main() {}   // C2601