auto
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, C++Builder prend en charge deux définitions différentes de auto
, déterminées par le standard suivi par chaque compilateur C++.
- La définition standard de C++11 est prise en charge par les compilateurs C++ de générations antérieures (BCC32 et BCCOSX).
- La définition standard C++11 est prise en charge par les compilateurs C++ améliorés par Clang.
Cette page décrit les deux définitions de auto
.
Définition C++11
Catégorie
Spécificateurs de classe de stockage (C++)
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
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.