auto

De Appmethod Topics
Aller à : navigation, rechercher

Remonter à Liste alphabétique des mots clés - Index


Le mot clé auto a été redéfini dans le standard C++11. Par conséquent, Appmethod C++ prend en charge deux définitions différentes de auto, déterminées par le standard suivi par chaque compilateur C++.

Cette page décrit les deux définitions de auto.

Définition C++0x

Catégorie

Spécificateurs de classe de stockage

Syntaxe

[auto] <data-definition> ;

Description

Utilisez le modificateur auto afin de définir une durée de vie locale pour une variable locale.

C'est le comportement par défaut pour les variables locales ; il est rarement utilisé.

Exemple

void f() {
        auto int x;
}

Définition C++11

Catégorie

Spécificateurs de type

Syntaxe

[auto] <variable_name> = <initializer_expression> ;

Description

Utilisez auto comme un simple spécificateur de type qui déduit sa sémantique de l'expression de l'initialiseur.

Exemple

int f() {
        return 1;
}

int _tmain(int argc, _TCHAR* argv[]) {
        auto x = f();
        return 0;
}

Dans cet exemple, le type de la variable x est déduit de l'expression de son initialiseur : f(). Par conséquent, x devrait être du type int, le type renvoyé par f().

Problème de migration du code

Lorsque les compilateurs C++ améliorés par Clang rencontrent l'ancienne syntaxe auto (si auto est utilisé comme un spécificateur de classe de stockage), ils émettent l'avertissement suivant :

[<compiler> Warning] File1.cpp(12): 'auto' storage class specifier is not permitted in C++11, and will not be supported in future releases.

Voir aussi