-----Original Message----- From: Boost
On Behalf Of Peter Dimov via Boost Sent: Wednesday, October 24, 2018 6:44 PM Mike Dev wrote:
We can switch to std::function unconditionally, but only if we drop C++03 (for some definition of C++03 because only the latest and greatest MSVC is ~fully C++11 compliant.)
That's my point: I don't want boost libraries to invest any more effort in maintaining c++03 support (I think I made that clear in the last ml-thread about this 2-3 month ago).
It's clear to all that everyone is held back by the inability to use C++11 things.
But we can't just stop investing effort in C++03 maintenance. We have to officially drop C++03 at the Boost level, meaning, refuse to compile Boost with C++03 at all, or make it difficult, or at least make it choose an intelligent default that is never C++03.
It appears different people have different opinions on whether a library can just drop c++03 support on its own. Just as different people seem to have different opinion on whether their library should drop c++03 support at all. But if I remember correctly, people on the ml agreed to announce just that (dropping c++03 support boost wide) before I went off traveling. I guess there hasn't been any new development on that front since then?
Otherwise it's easy for our (g++ 5 and clang) users to end up with Boost libraries compiled with C++03.
(Of course this just kicks the can a bit further down the road - we'll then need to pick between 11 and 14 as a default for g++ 5 and clang...)
I think - by default - all libraries should be compiled with the latest official standard a particular compiler supports (that was available at the time of its release) and tested with all supported ones. That would be 14 for g++5 and most of clang and 17 for newer compilers.
Btw.: Feature/library wise, I believe the only c++11 thing missing from MSVC2015 is full constexpr support and expressions sfinae and even MSVC2013 provides most of the library and language bits.
The point is that "C++11" is not useful as a requirement when it comes to MSVC, we need to pick a specific minimum version. 2013 is a good approximation of "C++11", I suppose.
True. Just as you might want to accommodate gcc4.8 which also isn't fully c++11 conformant. Mike