fork download
  1. class A;
  2. class B;
  3.  
  4. template<typename T>
  5. struct Ptr { T* ptr_t; };
  6.  
  7. class A {
  8. public:
  9. using ptr = Ptr<A>;
  10. Ptr<B> b;
  11. };
  12.  
  13. class B {
  14. public:
  15. using ptr = Ptr<B>;
  16. Ptr<A> a;
  17. };
  18.  
  19. int main() {
  20. A a;
  21. B b;
  22. a.b.ptr_t = &b;
  23. b.a.ptr_t = &a;
  24.  
  25. A::ptr aptr;
  26. B::ptr bptr;
  27. aptr.ptr_t = &a;
  28. bptr.ptr_t = &b;
  29. a.b = bptr;
  30. b.a = aptr;
  31. }
Success #stdin #stdout 0s 3456KB
stdin
Standard input is empty
stdout
Standard output is empty