@LB,
Thank you for reporting this!
Though it took more than a few weeks to fix the problem, it was "broke" years ago.
It will require an update to VC++2017 to get it working correctly. I hope that is released real soon.
Sucks when a feature that should be standard C++ is bollixed.
The real world is catching up to the ideal world.
The blog does confirm something I was guessing was true because of the VC++2017 language switches in a project's C/C++ property sheets:
Note that the MSVC compiler does not, and never will, support a C++11, C++03, or C++98 standards version switch. |
The blog article has a link to a new switch in VC++2017,
/permissive-.
Forces ISO Standard Conformance, and is set active by default.
I was somewhat wondering what the switch did when active/inactive (lazy to go look), and thanks to you, LB, I know. :)
https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance
As with all things MS and VS it isn't all beer and skittles:
Not all C++11, C++14, or C++17 standards-conforming code is supported by the Visual C++ compiler in Visual Studio 2017. |
Every major compilers has an area or two not fully compliant with the standard(s). VS is not unique in that area.
Still getting used to all the features of VS2017, even after using it for several months.