You are of course joking. You must be.
First of all, your statement is not true. There is no class
IUnknown defined in Code::Blocks. You can easily verify this by doing a global search on the sources, the string
IUnknown does not appear anywhere (not even in a contrib plugin or a resource file).
Second, what would it matter if Code::Blocks
did define such a class? That is absolutely irrelevant for any of your projects (unless you copy and paste our code into your project).
Third,
namespaces have the purpose of
avoiding such conflicts, and they do so quite reliably if you use them correctly. Of course, if you use one or more large libraries (such as Irrlicht) and start every source file with
using every_namespace_in_existence then you deserve the trouble you get from that. This is a well-known programming sin.