Afficher : Delphi C++
Préférences d'affichage

Spécificateur de type decltype (C++0x)

De RAD Studio XE2

Remonter à Fonctionnalités C++0x - Index

Le standard C++0x inclut l'opérateur et le mot clé decltype, qui représentent le type d'une expression. Cette fonctionnalité fait partie des fonctionnalités C++0x ajoutées à C++Builder 2009.

Syntaxe

Voici le format de l'opérateur decltype :

decltype ( expression )

Voici les règles d'évaluation de decltype(e) :

  • Si 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.
  • Sinon, si e est un appel de fonction ou invoque un opérateur surchargé, decltype(e) est le type renvoyé par la fonction.
  • Sinon, si e est un lvalue, decltype(e) est une référence à T (T&) où T est le type de e.
  • Si aucun des autres cas s'applique, decltype(e) est le type de e.

Exemples

Voir le contenu incorporé des exemples suivants.

const char *namePtr, nameChar;
decltype(namePtr);      // le type est const char*
decltype(nameChar);     // le type est const char
int& F(void);
decltype(F());          // le type est int&

struct; D {double value; }
const D* d = new D();

decltype(d->value);    // le type est double
decltype((d->value));  // le type est const double&

double GetValue(int one);
long int GetValue(double d);
decltype(GetValue);     // mal formé -- ambigu

Voir aussi

Versions précédentes
Autres langues