| struct EmptyClass {}; |
| struct DefinedClass { |
| int i; |
| }; |
| typedef DefinedClass DefinedClassTypedef; |
| |
| struct FwdClass; |
| typedef FwdClass FwdClassTypedef; |
| |
| template <typename T> struct DefinedTemplateClass {}; |
| template <> struct DefinedTemplateClass<int> {}; |
| |
| template <typename T> struct FwdTemplateClass; |
| template <> struct FwdTemplateClass<int>; |
| |
| enum class EnumClassFwd; |
| |
| enum DefinedEnum { Case1 }; |
| enum DefinedEnumClass { Case2 }; |
| |
| EmptyClass empty_class; |
| DefinedClass defined_class; |
| DefinedClassTypedef defined_class_typedef; |
| |
| FwdClass *fwd_class; |
| FwdClassTypedef *fwd_class_typedef; |
| |
| DefinedTemplateClass<int> defined_template_class; |
| FwdTemplateClass<int> *fwd_template_class; |
| |
| EnumClassFwd *fwd_enum_class = nullptr; |
| |
| DefinedEnum defined_enum = Case1; |
| DefinedEnumClass defined_enum_class = DefinedEnumClass::Case2; |
| |
| int main() {} |