test.cxx (1292B)
1 struct A { 2 virtual int func_a() = 0; 3 int int_member_a; 4 }; 5 6 struct B : public virtual A { 7 int func_a() { return 0; } 8 9 static int func_b() { return 11; } 10 }; 11 12 struct C : public virtual A { 13 int func_a() { return 1; } 14 15 enum { EnumC = 100 }; 16 }; 17 18 struct D : public B, public C { 19 private: 20 int func_a() { return B::func_a(); } 21 void func_d(); 22 23 int private_member_int; 24 public: 25 int public_member_int; 26 protected: 27 int protected_member_int; 28 }; 29 30 void D::func_d() {}; 31 f_dynamic_call(A *a) { a->func_a(); }; 32 33 void f_variadic(int a, ...); 34 void f_non_variadic(int a, char b, long c); 35 36 typedef int const* const_int_ptr; 37 int int_array[8]; 38 39 struct RefQualifier { 40 void func_lvalue_ref() &; 41 void func_rvalue_ref() &&; 42 void func_none(); 43 }; 44 45 int A::*member_pointer = &A::int_member_a; 46 47 struct BitField { 48 int bit_field_a : 2; 49 int bit_field_b : 6; 50 int non_bit_field_c; 51 }; 52 53 enum normal_enum { 54 normal_enum_a 55 }; 56 57 template <typename T> T func_overloaded(T a) { return a;}; 58 template <typename T> T func_overloaded() { return 100;}; 59 template <typename T> T use_func_overloaded() { return func_overloaded<T>(); }; 60 int use_overloaded_int_a = func_overloaded<int>(); 61 62 void availability_func(void) __attribute__((availability(macosx,introduced=10.4.1,deprecated=10.6,obsoleted=10.7)));