On 02/08/18 22:36, degski via Boost wrote:
On 8 February 2018 at 13:25, Peter Dimov via Boost
wrote: degski wrote:
Using std::function has one advantage, though, it's standardised.
In the context of this discussion, it's irrelevant.
It seems only logical to me to decrease coupling with other boost libraries as time moves on, to use the std-equivalent of certain boost libraries...
This discussion is about link compatibility between code compiled with C++03 and code compiled with C++11. If your code uses std::function, it can't be compiled with C++03 and therefore this thread is simply not for you.
Yes, I get that, I'm stating the opposite, if it's compiled with C++11, it should use std::function.
How does that solve the linking incompatibility problem?
PS: I really don't understand the focus of boost to always want to compile stuff with the most archaic compilers possible. If your using an old compiler, just use a(n older) boost version that works with that specific compiler.
It's not just about older compilers. There are code bases that are not compatible with C++11, some of them using Boost. Given that the default in recent compilers is C++14, those code bases explicitly set C++03. Those code bases are supposed to link with whatever Boost version (which, of course, is compiled in the default C++14 mode) that is shipped by your distro. On older systems there is a reverse problem, when the system-supplied Boost is compiled in C++03 and you want to compile your code in C++11 or later.