The compiler recently implemented an explicit /permissive (lax) option.
An expected upcoming compiler change (Microsoft-internal MSVC-PR-221404) will make /std:c++latest imply /permissive- (strict). However, /std:c++latest /permissive (lax) will be a supported combination, and will be required by some of our users.
-
We'll need to change our test coverage accordingly. (Currently, we test /std:c++latest by itself, and /std:c++latest with /permissive- (strict), but not /std:c++latest /permissive (lax) because that option previously didn't exist.) We can update our tests immediately, to immunize them against the upcoming change to /std:c++latest.
-
We'll also need to figure out what to do about portions of the STL (like ranges) that absolutely cannot tolerate /permissive (lax) mode, since ranges is used by other components like span, and /permissive (lax) versus /permissive- (strict) cannot currently be detected at preprocessor time.
The compiler recently implemented an explicit
/permissive(lax) option.An expected upcoming compiler change (Microsoft-internal MSVC-PR-221404) will make
/std:c++latestimply/permissive-(strict). However,/std:c++latest/permissive(lax) will be a supported combination, and will be required by some of our users.We'll need to change our test coverage accordingly. (Currently, we test
/std:c++latestby itself, and/std:c++latestwith/permissive-(strict), but not/std:c++latest/permissive(lax) because that option previously didn't exist.) We can update our tests immediately, to immunize them against the upcoming change to/std:c++latest.We'll also need to figure out what to do about portions of the STL (like ranges) that absolutely cannot tolerate
/permissive(lax) mode, since ranges is used by other components likespan, and/permissive(lax) versus/permissive-(strict) cannot currently be detected at preprocessor time.