range-v3
range-v3 copied to clipboard
Conflicts with win32 header files on visual studio 2022
Compilation success depends on the order of includes. Fails if windows headers go 1st:
//compile failure:
#include <windows.h>
#include <range/v3/all.hpp>
The above code creates a lot of none-sence diagnostics. but if the order is reversed, everything works fine:
//compile success:
#include <range/v3/all.hpp>
#include <windows.h>
I guess the problem lies in ranges preprocessing. But since I am using external VCPKG, I cannot tell whether it is a problem on Microsoft port, or the ranges library has an issue.
thank you for making life easier.
@OptimumCpp , you can add NOMINMAX
preprocessor definition in the build system. After that, it should compile.
I also notice that sometimes, some libraries do #define True
. In that case, it is worth doing #undef True
before ranges inclusion.
As I mentioned earlier, I mamged to build code with reordering includes, but I will try this workaround as well. But I guess True
must be #undef
d inside range headers.