I have a very simple problem - but I don't find any solution. I want to use a template class two times, but with mutual dependency in the template argument.
I want to write something like this:
template<class T> class X
{
};
class B;
using A = X<B*>;
using B = X<A*>;
My Problem is, that I need in the defintion of A the type B, but for the defintion of B I need the type A. And a forward declaration like "class B" doesn't work.
Microsoft Visual Studio 2017 says: error C2371: "B": new definition; different base types.
What I need is something like "type B;" where I can tell the compiler, that B is a type. For a pointer it doesn't matter which type it is.