diff --git a/test/CURSED_TYPEDEF.h b/test/CURSED_TYPEDEF.h new file mode 100644 index 0000000..c2bad60 --- /dev/null +++ b/test/CURSED_TYPEDEF.h @@ -0,0 +1,35 @@ +#include + +class MyClass; + +enum class MyEnum : short { VAL1, VAL2 }; + +struct OuterStruct { + union NamedUnion { + struct InnerStruct { + double d; + char c; + } inner; + int i; + } unionInstance; +}; + +template +struct TemplateStruct { + T member[N]; +}; + +template<> +struct TemplateStruct { + int specialMember[10]; +}; + +typedef decltype(nullptr) (MyClass::*InsaneComplexTypeDef)( + decltype((MyEnum::VAL1 == MyEnum::VAL2) ? 1 : 2.0) + (TemplateStruct::*ptr)[5][alignof(double)], + std::function&&, + void (MyClass::*memFnPtr)(TemplateStruct))>, + int (MyClass::*&refToMemFnPtr)(TemplateStruct), + int (TemplateStruct::*memberPointer)[10], + char&&... +) volatile const && noexcept;