>    53 #if defined __cplusplus
>    54 # define YY_CPLUSPLUS __cplusplus
>    55 #else
>    56 # define YY_CPLUSPLUS 199711L
>    57 #endif
> 
> Please check why your compiler does not define __cplusplus.  Compliant 
> compilers
> must define it properly so that we can know what version of C++17 we're in.
> See https://en.cppreference.com/w/cpp/preprocessor/replace#Predefined_macros.


It is defined. Just not what we think it should be. It is 199711L

I've never had to check the value of __cplusplus, just if it existed or not.
After some digging, I found this:

"You need to compile with the /Zc:__cplusplus switch to see the updated value
of the __cplusplus macro. We tried updating the macro by default and discovered
that a lot of code doesn’t compile correctly when we change the value of 
__cplusplus"

Source: 
https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/

Without this /Zc switch, the Microsoft compiler seems to default __cplusplus to 
199711L
This switch is not on by default.

I honestly can't find the words to express how I feel about this.

Sorry to bother you,
Thanks for your help

Reply via email to