[John Maddock]
I suspect 15.5 in C++17 /permissive- mode will break quite a few libraries given that things that were in the std have now been removed.
Please note that /std:c++17 and /permissive- are orthogonal. /std:c++17 requests C++17 features, and additionally activates deprecation warnings in the STL and removals in the STL and Core Language. See https://blogs.msdn.microsoft.com/vcblog/2017/12/08/c17-feature-removals-and-... for more info. /permissive- activates our partial implementation of two-phase name lookup, and disables behavior that contradicts the Standard. [Olaf van der Spek]
That stuff has been deprecated for a while as well, how come action wasn't taken?
I've been notifying Boost for years, starting on March 18, 2015 and most recently on August 9, 2017: "This was actually implemented in MSVC 2015 RTM, as opt-in behavior. In MSVC 2015.3 when /std:c++latest was added, we made C++17 mode remove auto_ptr/etc. by default (with the same macro being used for opt-out). I would like to gently point out that I gave Boost a heads-up when all of this happened, in classic emails like "Removing auto_ptr/etc. from Boost" on March 18, 2015 and "Boost and auto_ptr (was Boost 1.60.0 beta 1...)" on November 11, 2015. We're treating the other C++17 removals identically. The old iostreams members are hopefully totally irrelevant, the std::function allocator support probably is too (I would expect boost::function to be used), but std::unexpected() removal may be relevant. That one's going to be enabled by /std:c++17 and /std:c++latest in 2017's second toolset update. As a reminder, "std::auto_ptr in public interfaces" on May 20, 2017 is repeating this cycle, with early notification of deprecation warnings: [...]" STL