0

I wanna do sth like this:

A.hpp:

template <class B>
class A{
  B* B;
};

B.hpp:

template <class A>
class B{
  A* a;
};

and it always fails..

Jarod42
  • 203,559
  • 14
  • 181
  • 302
scirocc
  • 153
  • 6

1 Answers1

1

You might use template template parameter (if appropriate):

template <template <typename> class C>
class A{
  C<A>* B;
};

template <template <typename> class C>
class B{
  C<B>* a;
};

So, A<B> and B<A> are both valid types.

Jarod42
  • 203,559
  • 14
  • 181
  • 302