mirror of
				https://github.com/Ed94/gencpp.git
				synced 2025-11-03 23:36:12 -08:00 
			
		
		
		
	- 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;
 |