@megmac C/C++ is a special hell because often you can import a symbol by *accident*. So code will work in one project and then you'll paste it into another and suddenly a critical symbol isn't found, because in the original project you included B.h which included A.h because nobody clearly told you in the first place you needed to include A.h.