1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
| // typedef
typedef unsigned long ULongArrayTypedef[10];
ULongArrayTypedef ULongArrayVar;
typedef long double*& RefTypedef;
long double* LongDoublePtrVar = 0;
RefTypedef RefVar = LongDoublePtrVar;
typedef long long (*FuncPtrTypedef)(int&, unsigned char**, short[], const double, volatile bool);
FuncPtrTypedef FuncVar;
typedef char (*VarArgsFuncTypedef)(void*, long, unsigned short, unsigned int, ...);
VarArgsFuncTypedef VarArgsFuncVar;
typedef float (*VarArgsFuncTypedefA)(...);
VarArgsFuncTypedefA VarArgsFuncVarA;
// unscoped enum
enum Enum { RED, GREEN, BLUE };
Enum EnumVar;
enum EnumConst { LOW, NORMAL = 10, HIGH };
EnumConst EnumConstVar;
enum EnumEmpty {};
EnumEmpty EnumEmptyVar;
enum EnumUChar : unsigned char { ON, OFF, AUTO };
EnumUChar EnumCharVar;
// scoped enum
enum class EnumClass { YES, NO, DEFAULT };
EnumClass EnumClassVar;
enum struct EnumStruct { red, blue, black };
EnumStruct EnumStructVar;
typedef signed char SCharTypedef;
SCharTypedef SCVar;
typedef char16_t WChar16Typedef;
WChar16Typedef WC16Var;
typedef char32_t WChar32Typedef;
WChar32Typedef WC32Var;
typedef wchar_t WCharTypedef;
WCharTypedef WCVar;
int main() {
return 0;
}
|