Kompilatorfel C2601

"funktion": lokala funktionsdefinitioner är olagliga

Anmärkningar

Kod försöker definiera en funktion i en funktion.

Eller så kan det finnas en extra eller saknad klammerparentes före platsen där C2601-felet uppstår.

Exempel

Definiera funktion i en funktion

Lambda-uttryck kan användas för att emulera beteendet för lokala funktioner:

// 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);
}

Avslutande klammerparentes saknas

Om en föregående funktion saknar en avslutande klammerparentes anses den efterföljande funktionen vara en lokal funktion:

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

int main() {}   // C2601