It is quite common to have forward declarations in order to avoid cyclic header file dependencies, or to implement pimpl, then one might end up with code like:
class A;
class B
{
A * a;
};
When one tries to replace this with a unique_ptr:
class A;
class B
{
std::unique_ptr<A> a;
};
the compiler complains. What is the best practice to get this working?