The C++ API should define a namespace for the SCE-API definitions. In a transition period, the SCE-API header should include a using directive for this namespace to allow compilation of existing code without modification. However, new code is encouraged to not rely on this. I propose the namespace to be named SceMi: namespace SceMi { class SceMi { public: Init(int Version, SceMiParameters *parameters, SceMiEC *ec = NULL); // etc. } // More definitions here. } // During the transition phase add this to scemi.h: using namespace SceMi; // This is optional in user code: using namespace SceMi; // After the transition period, if the user code did not get // changed to include the using directive above: SceMi *sceMi; // Error: SceMi not in global namespace SceMi::SceMi *sceMi; // Ok: Explicit reference to SceMi namespace