Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conflicts with win32 header files on visual studio 2022 #1788

Open
OptimumCpp opened this issue Jun 21, 2023 · 2 comments
Open

Conflicts with win32 header files on visual studio 2022 #1788

OptimumCpp opened this issue Jun 21, 2023 · 2 comments

Comments

@OptimumCpp
Copy link

OptimumCpp commented Jun 21, 2023

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 OptimumCpp changed the title Conflicts with wind32 header files on visual studio 2022 Conflicts with win32 header files on visual studio 2022 Jun 21, 2023
@przemkovv
Copy link

@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.

@OptimumCpp
Copy link
Author

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 #undefd inside range headers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants