Callback Functions. What include guards in C++ are, and what they are not. And why they do not solve "multiple definition" errors.
Include guards are heavily used in C++ and you see them in virtually any code base (that has more than two files). Sometimes there is a bit of confusion what they do, and what they can not do. I decided to explain everything in detail, so I ended up explaining the whole C++ compilation process of preprocessing, compiling and linking your application or library. Introduction to include guards.