mirror of
https://github.com/Ed94/gencpp.git
synced 2024-12-22 07:44:45 -08:00
Ed_
cb898595b0
- CodeParam -> CodeParams - interfaces array weren't being used in parse_class_struct - added enum_underlying_sig
62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
#include <functional>
|
|
#include <tuple>
|
|
|
|
class MyClass;
|
|
|
|
enum class MyEnum : short { VAL1, VAL2 };
|
|
|
|
struct OuterStruct {
|
|
union NamedUnion {
|
|
struct InnerStruct {
|
|
double d;
|
|
char c;
|
|
} inner;
|
|
int i;
|
|
} unionInstance;
|
|
};
|
|
|
|
template<typename T, int N = alignof(double)>
|
|
struct TemplateStruct {
|
|
T member[N];
|
|
};
|
|
|
|
template<>
|
|
struct TemplateStruct<int, 10> {
|
|
int specialMember[10];
|
|
};
|
|
|
|
template<typename T>
|
|
struct AnotherTemplate {
|
|
T value;
|
|
};
|
|
|
|
typedef decltype(nullptr) ( MyClass:: * InsaneComplexTypeDef )
|
|
(
|
|
decltype( (MyEnum::VAL1 == MyEnum::VAL2) ? 1 : 2.0 )
|
|
( TemplateStruct< decltype(OuterStruct().unionInstance.inner), 5> :: * ptr ) [5] [ alignof(double) ],
|
|
std::function<
|
|
void *
|
|
(
|
|
TemplateStruct<int, 10> &&,
|
|
void ( MyClass:: * memFnPtr )(
|
|
TemplateStruct<
|
|
decltype(OuterStruct().unionInstance.inner)
|
|
>
|
|
)
|
|
)
|
|
>,
|
|
int ( MyClass :: * & refToMemFnPtr )( TemplateStruct<int, 10> ) ,
|
|
int ( TemplateStruct<int, 10>:: * memberPointer) [10],
|
|
typename std::tuple_element<
|
|
0,
|
|
std::tuple<
|
|
AnotherTemplate<
|
|
TemplateStruct< decltype(OuterStruct().unionInstance), 3 >
|
|
>
|
|
>
|
|
> :: type :: * complexMember,
|
|
template<typename U> typename AnotherTemplate<U> :: * templateMember
|
|
char&&...,
|
|
)
|
|
volatile const && noexcept;
|