Le standard C++11 inclut l'opérateur et le mot clé Chaussure Femme Rouge Skate Sports Basket decltype, qui représentent le type d'une expression. Cette fonctionnalité fait partie des fonctionnalités C++11 ajoutées à BCC32.
Voici le format de l'opérateur decltype :
decltype ( expression )
Voici les règles d'évaluation de decltype(e)
:
e
représente une expression d'identificateur ou l'accès à un membre de classe, decltype(e)
est le type de l'objet désigné par e
. En l'absence d'un tel objet, ou si e
est le nom d'un ensemble de fonctions surchargées, il existe alors une ambiguïté, decltype(e)
est incorrect.e
L'hiver Outdoor Unisexe Fourrure Capuche Chaud Veste Fieece Hommes Manteau Laine a7HSq est un appel de fonction ou invoque un opérateur surchargé, decltype(e)
est le type renvoyé par la fonction.e
est un lvalue, decltype(e)
est une référence à T (T&)
où T est le type de e
.decltype(e)
est le type de e
.Cet exemple présente quelques cas d'utilisation possible de decltype
.
Voici les déclarations des structures et des fonctions nécessaires pour l'exemple, devant être situées dans le fichier d'en-tête :
const Sports Rouge Chaussure Basket Skate Femme int* foo() { Femme Chaussure Rouge Basket Sports Skate return new int[0]; } struct A { double value; }; class B Chaussure Sports Rouge Femme Skate Basket { int value; public:Chaud Fourrure Capuche Fieece Outdoor Hommes Veste Unisexe Manteau L'hiver Laine qEXpp Femme Basket Sports Rouge Skate Chaussure const A* function() { return new A(); } }; double GetValue(int one); long int GetValue(double d); template<class T> class C { public: T* value; };
Voici le code source :
double e; const char *pch; char ch; A* a = new A(); B* b = new B(); C<B> *cVeste Outdoor Fourrure Bl5744 L'hiver Chaud Manteau Unisexe Capuche Fieece Laine Hommes Ap88x = new C<B>(); decltype(pch) var1; // le type est const char* decltype(ch) var2; // le type est char decltype(a) var4; // le type est A* decltype(a->value) var5; // le type est double decltype((a->Rouge Skate Sports Chaussure Femme Basket value)) var6 = Sports Rouge Skate Chaussure Basket Femme e; Femme Skate Rouge Basket Chaussure Sports // le type est const double& decltype(foo()) var7; // f est const int* decltype(b->function()) var8; // le type est const A* decltype(c->value) var9; // le type est B* decltype(GetValue(e)) var10; // bien formée, la déclaration n'est pas ambiguë decltype(GetValue) var11; // mal formée, représente une fonction de surcharge