brintos

brintos / llvm-project-archived public Read only

0
0
Text · 683 B · b7eb252 Raw
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