__cplusplus has the value 199711L for MSVS 2019 version 16.11.12. _MSVC_LANG does have the desired value of 202002L.
That would be expected. That is MS's default value unless you specify "/Zc:__cplusplus". Once you specify that, whatever you specify via "/std:<14/17/20/latest>" will also properly set __cplusplus.
And TIL about _MSVC_LANG... (me googles) From MS's docs:
> The _MSVC_LANG
predefined macro reports the standard version whether the /Zc:__cplusplus
option is enabled or disabled. When /Zc:__cplusplus
is enabled, __cplusplus
has the same value as _MSVC_LANG
.
Dave