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