Casey Carter f885fb2c91
[pull_coroutine] iterators model C++20 InputIterator
The C++20 `InputIterator` concept requires post-increment indirectly via the [`WeaklyIncrementable`](http://eel.is/c++draft/iterator.concept.winc) concept, but doesn't constrain the return type unlike the "old [input iterator requirements](http://eel.is/c++draft/input.iterators). Consequently the iterators of coroutine generators - such as `pull_coroutine` - can model `InputIterator`.

Drive-by: Remove explicit implementations of copy construction/assignment that do what the default implementations would; don't pessimize by avoiding self-swap of pointers.
2018-12-05 09:26:52 -08:00
2016-07-04 10:15:21 +02:00
2015-01-22 22:55:01 +01:00
2017-12-20 15:34:05 +01:00
2015-01-23 23:15:23 +01:00
2018-02-05 08:10:22 +01:00

boost.coroutine2

boost.coroutine2 provides templates for generalized subroutines which allow multiple entry points for suspending and resuming execution at certain locations. It preserves the local state of execution and allows re-entering subroutines more than once (useful if state must be kept across function calls).

Coroutines can be viewed as a language-level construct providing a special kind of control flow.

In contrast to threads, which are pre-emptive, coroutines switches are cooperative (programmer controls when a switch will happen). The kernel is not involved in the coroutine switches.

boost.coroutine2 requires C++11! Note that boost.coroutine2 is the successor of the deprectated boost.coroutine.

Description
Boost.Coroutine2
Readme 464 KiB
Languages
C++ 98.2%
Shell 0.9%
CMake 0.5%
HTML 0.4%