Partilhar via


Erro do compilador C2601

'função': definições locais de função são ilegais

Observações

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

Ou, pode haver uma chave a mais/em falta antes do local do erro C2601.

Exemplos

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

As expressões do Lambda podem ser usadas para emular o comportamento de 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);
}

Falta de chave de fecho

Se uma função anterior estiver faltando uma chave de fechamento, a função subsequente é considerada uma função local:

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

int main() {}   // C2601