Включайте .hpp в соответствующий .cpp
в качестве первой основной строки кода.
Даже если в остальном .cpp пуст.
Последнее предложение популяризирует Джон Лакос. См., например. CppCon 2016: Джон Лакос «Расширенные методы выравнивания (часть 1 из 3)», 7:28:

Это правило гарантирует, что наши заголовки самодостаточны, т. е. они компилируются изолированно, или, другими словами, они компилируются изолированно. им не требуются другие заголовки перед компиляцией.
Но гарантирует ли это, что мы никогда не будем включать зависимости порядка?
Подробнее здесь: https://stackoverflow.com/questions/780 ... -not-solve
Мобильная версия