Udostępnij za pomocą


Błąd kompilatora C2601

"function": lokalne definicje funkcji są niedozwolone

Uwagi

Kod próbuje zdefiniować funkcję w funkcji.

Lub może być dodatkowy lub brakujący nawias klamrowy przed lokalizacją błędu C2601.

Przykłady

Definiowanie funkcji w funkcji

Wyrażenia lambda mogą służyć do emulowania zachowania funkcji lokalnych:

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

Brak nawiasu klamrowego zamykającego

Jeśli w poprzedniej funkcji brakuje nawiasu klamrowego zamykającego, kolejna funkcja zostanie podjęta jako funkcja lokalna:

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

int main() {}   // C2601