29 lines · cpp
1#define CLASS(NAME) \2 class NAME { \3 public: \4 struct Inner; \5 Inner *i = nullptr; \6 }; \7NAME::Inner &getInner##NAME();8 9CLASS(A)10CLASS(B)11CLASS(C)12CLASS(D)13CLASS(E)14CLASS(F)15CLASS(G)16 17int main()18{19 A::Inner &inner_a = getInnerA();20 B::Inner &inner_b = getInnerB();21 C::Inner &inner_c = getInnerC();22 D::Inner &inner_d = getInnerD();23 E::Inner &inner_e = getInnerE();24 F::Inner &inner_f = getInnerF();25 G::Inner &inner_g = getInnerG();26 27 return 0; // break here28}29