相关代码:
int SomeCollection::Enumerate()
{
for (int i=0; i<4; i++)
yield_return(rand());
return rand();
}
需要自定义类:
template <class T, class R>
void Enumerator::Return(const R &value)
{
Enumerator *E=(Enumerator *)GetFiberData();
if (E->Fiber!=GetCurrentFiber())
{
*E->pResult=value;
SwitchToFiber(E->Fiber);
}
}