C++ header files should introduce as few definitions as possible. This is why it is advisable to use forward declarations of the types needed in a header file. This leads to less coupling and faster compilation times.
To help with this, the C++ standard provides the
The definitions whose forward declarations that
<cstdio> <cstdlib> <cwchar> <fstream> <iomanip> <ios> <iostream> <istream> <ostream> <sstream> <streambuf>