Partager via


Erreur du compilateur C2601

'function' : les définitions de fonction locale ne sont pas valides

Remarques

Le code tente de définir une fonction dans une fonction.

Ou bien, il peut y avoir une accolade manquante ou supplémentaire avant l'emplacement où se situe l'erreur C2601.

Exemples

Définir une fonction dans une fonction

Les expressions lambda peuvent être utilisées pour émuler le comportement des fonctions locales :

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

Accolade fermante manquante

Si une fonction précédente manque une accolade fermante, la fonction suivante est considérée comme une fonction locale :

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

int main() {}   // C2601