I once planned to do everything with forward declarations, hoping it would be a universal solution. But how do I do this with classes that use templates?

Oh well, if I can't I can't. I can make an exception in that case if I have to.