Fix Windows builds with Visual Studio 16.8 #231
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.
Add /permissive flag to MSVC unit test compilation. As of 16.8, MSVC
implicitly adds /permissive- when using /std:c++latest. See:
https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance?view=msvc-160
It seems that with this flag, MSVC fails to compile user-defined
literals when prefixed with a negative sign, e.g. "-100_u8".
MSVC previously respected a stream's precision using std::hexfloat,
which is non-compliant with the spec (std::hexfloat is meant to
ignore precision). Unfortunately it does not behave the same as Clang
and GCC still; MSVC will always zero-pad a fixed amount. See:
Fix ostream << floating_point not correctly handling precision microsoft/STL#1173