|
Boost : |
Subject: Re: [boost] [release] Boost 1.66.0 Release Candidate 2
From: Stephan T. Lavavej (stl_at_[hidden])
Date: 2017-12-15 20:42:46
[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-deprecations/ 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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk