I'm trying to understand coroutine usage with boost 1.53.0. I'm getting
an assertion when running the code snippet from the docs "Creating a
coroutine" from
http://www.boost.org/doc/libs/1_53_0/libs/coroutine/doc/html/coroutine/corou...
#include
#include <string>
typedef boost::coroutines::coroutine< int (std::string const&) > coro_t;
// void f( boost::coroutine< std::string const&( int) > & ca)
void f( coro_t::caller_type & ca)
{
std::string str( ca.get() ); // asserts here!
ca(7);
}
int main(int argc, char* argv[])
{
std::string str("abc");
coro_t c(f);
c(str); // pass argument
int res = c.get(); // returned value
return 0;
}
Asserts in coroutine_get.hpp line 43:
BOOST_ASSERT( static_cast< D const* >( this)->impl_->result_);
Is the snippet from the doc incorrect or am I doing something else wrong.
Thanks, Jeff