4 boost.coroutine provides templates for generalized subroutines which allow multiple entry points for
5 suspending and resuming execution at certain locations. It preserves the local state of execution and
6 allows re-entering subroutines more than once (useful if state must be kept across function calls).
8 Coroutines can be viewed as a language-level construct providing a special kind of control flow.
10 In contrast to threads, which are pre-emptive, coroutines switches are cooperative (programmer controls
11 when a switch will happen). The kernel is not involved in the coroutine switches.
13 Note that boost.coroutine is deprecated - boost.coroutine2 is its successor.
14 If you are forced to use a pre-C++11 compiler you should still use boost.coroutine.