29 lines
683 B
C++
29 lines
683 B
C++
#define CLASS(NAME) \
|
|
class NAME { \
|
|
public: \
|
|
struct Inner; \
|
|
Inner *i = nullptr; \
|
|
}; \
|
|
NAME::Inner &getInner##NAME();
|
|
|
|
CLASS(A)
|
|
CLASS(B)
|
|
CLASS(C)
|
|
CLASS(D)
|
|
CLASS(E)
|
|
CLASS(F)
|
|
CLASS(G)
|
|
|
|
int main()
|
|
{
|
|
A::Inner &inner_a = getInnerA();
|
|
B::Inner &inner_b = getInnerB();
|
|
C::Inner &inner_c = getInnerC();
|
|
D::Inner &inner_d = getInnerD();
|
|
E::Inner &inner_e = getInnerE();
|
|
F::Inner &inner_f = getInnerF();
|
|
G::Inner &inner_g = getInnerG();
|
|
|
|
return 0; // break here
|
|
}
|