On 10/24/2018 6:53 PM, Peter Dimov via Boost wrote:
Edward Diener wrote:
What I was saying is this: the user, or someone acting on his behalf such as a package maintainer, types f.ex.
b2 toolset=clang install
and obtains a prebuilt Boost.
Then the user types f.ex.
clang++ -std=c++17 myapp.cpp -lboost_pumpkin
and expects it to work. If boost_pumpkin autodetects C++11/C++14/C++17 > and changes its API to match, it doesn't work.
Is not this a user problem, irrelevant of cxxstd level ?
It is a user problem, but note that it doesn't happen if libraries don't change their API in response to the cxxstd level. That is, libraries that assume C++03 and use the Boost components instead of their standard equivalents don't suffer from this, it all works.
If we up the minimum requirement
What do you mean by the above ? Suppose you made the minimum requirement C++11, what would you expect a library to do to meet that requirement ? I think this is the gist of all the disagreements about what cxxstd Boost should support as a minimum.
these libraries could just unconditionally transition to the std components wholesale (again without adapting to cxxstd) and it will still work (provided that we either build with an intelligent post-03 default, or quit with an error when C++03 is assumed by omission as above, thereby forcing the user to choose a preferred post-03 cxxstd level.)