I have two numerical maths libraries given by DLLs (I am under Windows) and header files. (I can't modifiy the headers and anyway there are dozens of them. I also don't have have access to a code that I could compile to obtain the DLLs.)
The libraries are the same in the following sense : they are both without any namespace (except the global one) and all declarations are the same : if a function is in one library it is also in the other with same signature and return type, constness or other "qualifiers" or anything included -- exporting for instance -- memory layout for return objects etc, same for classes, structs, enums, variables etc etc. (One could imagine for instance, even if it is not the case, that both libraries are just different versions of the same library with only internal differences.)
So far, for legacy reasons, I was using these libraries in different visual studio solutions but now I need to use both libraries in the same file. (There is some function f with better performance in one library and other function g with better performance in the other library and I need to use f and g let's say in the definition of a function I am implementing.)
Of course, if in code I do a #include "headerfromlib1.h" followed with #include "headerfromlib2.h", I immediately have clashes.
I can't imagine that there is no solution to my problem but so far I don't see any. (I would prefer an OS-independent solution as I am not expert at all in the C++ Windows "layer" even if needed I wouldn't be against using it.)