Noms de type simple
Un nom de type simple est le nom d'un type simple. Il s'agit d'un type qui n'est pas un pointeur, une référence, un tableau ou un pointeur fonction.
class-name
[ :: ] nested-name-specifier type-name
[ :: ] nested-name-specifier template template-id
char
wchar_t
bool
short
int
long
signed
unsigned
float
double
void
auto
decltype ( expression )
Notes
Un nom de type simple peut être qualifié par un spécificateur de nom imbriqué, qui indique l'espace de noms ou la classe conteneur.
int // simple type name
unsigned int // combination of simple type names
MyClass // a class type
class MyClass // class is optional when using the type name
struct MyStruct // the keyword struct is optional in C++
enum MyEnum // the keyword enum is optional in C++
::MyClass // type name at global scope
Outer::Inner // nested type name
::Outer::Inner // nested type names with global scope operator
MyTemplate<int> // a class template
Outer::Inner<int> // an inner class template
Outer<char>::Inner<int> // an inner class template of a template class
::template MyTemplate<int> // using the template keyword
typename MyClass // the typename keyword (only in a template definition)
Le tableau suivant montre comment les noms de type simple peuvent être utilisés conjointement.
Combinaisons de noms de types
Type |
Peut apparaître avec |
Commentaires |
---|---|---|
int |
long ou short, mais pas les deux. |
Le type int implique le type long int. |
long |
int ou double |
Le type long implique le type long int. |
short |
int |
Le type short implique le type short int. |
signed |
char, short, int ou long |
Le type signed implique signed int. Le bit de poids fort des objets de type signed char et des champs de bits des types intégraux signés est traités comme le bit de signe. |
unsigned |
char, short, int ou long |
Le type unsigned implique unsigned int. Le bits de poids fort des objets de type unsigned char et des champs de bits des types intégraux non signés n'est pas traité comme le bit de signe. |