I have begun to forward declare what I can in the header. However, the majority of the time I am only postponing the #include to the corresponding cpp file.
This article has led me to believe I should be doing this. However, in practice I've never seen someone else's code with such copious amounts of forward declares with a corresponding include in the cpp file.
I am wondering, if I am misinterpreting or over applying this rule and in the process making my project less readable.