On 10/24/2018 12:43 PM, Peter Dimov via Boost wrote:
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.
Otherwise it's easy for our (g++ 5 and clang) users to end up with Boost libraries compiled with C++03.
I don't get this. Why can't library X, which needs C++11, depend on library Y, which needs C++03 but works fine if compiled with C++11. What am I missing here ? I agree, and have agreed, that Boost should spend no resources testing anything which still supports C++03. I agree, and have agreed, that end-users should be told that any library which currently support C++03 may, without prior notice, choose to support only C++11 on up in its next release. I just don't understand why a library which does support C++03 is a liability to other libraries which support C++11 ? Now if you are saying that libraries which do support C++03, but which use Boost libraries rather than their C++11 equivalents, should change to support C++11 so that their C++11 equivalents are used instead, I can understand that argument, since that was what cxxd was largely about and sought to accomplish without forcing a C++03 library to specifically change to a C++11 on up library. So I can understand the perhaps more straightforward idea of forcing a C++03 to become a C++11 library and use the C++11 equivalent library rather than the Boost library.