Boost logo

Boost :

From: Andrzej Krzemienski (akrzemi1_at_[hidden])
Date: 2021-12-01 08:20:29


wt., 30 lis 2021 o 20:28 Peter Dimov via Boost <boost_at_[hidden]>
napisał(a):

> 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.
>

Thanks for this explanation.
I am not familiar with the details of the issue, so I basically work based
on the information in this thread.
I am trying to figure out whether the proposed Boost.Spawn better fits
inside Boost.ASIO or in a separate library.

My current understanding is that a C++03 user that does not use the
`ucontext` backend can successfully use `boost::asio:::spawn()` today, and
if the implementation of `boost::asio:::spawn()` were simply upgraded to
use the proposed implementation, the said C++03 user would be hurt. Is this
correct?

If this is correct, it means that the new implementation cannot fully
replace `boost::asio:::spawn()`, but it can be used as an addition, so that
the users can be offered two functions:

boost::asio::spawn_fiber() // preferred if you are C++11 or higher
boost::asio::spawn() // dangerous, but works with C++03

Would this be a correct summary?

Regards,
&rzej;

>
>
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>


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