Work around Windows min/max macro problem #145
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This small change works around the very problematic default feature of
windows.h
declaring macros formin
andmax
. See https://stackoverflow.com/questions/5004858/stdmin-gives-errorThere are other solutions to this problem (Such as defining
#NOMINMAX
on the project developer's side), but this change keeps the code in CLI11 unambiguous.This would mean that any further invocations of
std::min
orstd::max
in this project would also need to use the explicit template type version for this change to be useful. I would understand if you do not wish to do that. If you do think it is worthwhile, a test could also be created that includeswindows.h
such that the macros would be defined and cause errors when building on Windows if min or max is used ambiguously in the future.