Boost logo

Boost :

Subject: Re: [boost] C++03 / C++11 compatibility question for compiled libraries
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2018-02-08 19:54:28


On 02/08/18 22:36, degski via Boost wrote:
> On 8 February 2018 at 13:25, Peter Dimov via Boost <boost_at_[hidden]>
> 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.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk