I am dealing with a buggy, a proprietary managed C ++ DLL that injects object objects into a namespace std(it is included in the project as a reference assembly).
Unfortunately, it injects an object with a name std::errcinto the namespace std, which means that the DLL will not play well with the new C ++ 11 std::errc. Now my project can not be compiled, if I include <string>, <iostream>, <fstream>and possibly other headers stdlib, which I have not found.
Is there a way to force a DLL to be placed in a sub-namespace? Or is there really any way to prevent an assembly reference from overriding certain components std?
source
share