From 3868e1e8111c1c39c05fb9f764e540b29b830fc1 Mon Sep 17 00:00:00 2001 From: Ed_ Date: Mon, 4 Sep 2023 12:32:31 -0400 Subject: [PATCH] Added cursed typedef --- test/CURSED_TYPEDEF.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 test/CURSED_TYPEDEF.h 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;