You would only do this if you were using "precompiled headers". Otherwise it doesn't make much sense.
- Use forward declarations where possible.
- Add includes in the files where you need a full declaration of a type.
Using a header file where you put all include files makes impossible for the build system to track the dependencies of changed files. Suddenly all your code depends on your core.h
header. If this header is changed, all your code has to be recompiled, even there is no actual change.