Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2021-11-30 19:28:24


Andrzej Krzemienski wrote:
> Please correct me if I am wrong, but my understanding is that Boost.ASIO
> works under C++03, and so does Boost.Coroutine. Whereas Boost.Coroutine2
> requires C++11. If Boost.ASIO were to switch from BoostCoroutine to
> Boost.Coroutine2, it would break its C++03 guarantee. (Some teams in my
> work still have to use C++03.)

It's a bit more complex than that. Boost.Coroutine depends on Boost.Context,
which is C++11. However, in order to not break C++03, Coroutine doesn't use
the public API of Context, but the private "fcontext" parts that are kept C++03
compatible only because of that. This incidentally means that if you compile
Context with the `ucontext` backend instead of the `fcontext` one,
Coroutine breaks.

So it's basically a mess and needs to be cleaned up. Since asio::spawn is a
separate part of Asio, moving just it to C++11 wouldn't be as disruptive a
change as requiring C++11 for all of Asio.


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