Re[21]: Generators in C++, (a.k.a. foreach & iteartors)
От: c-smile Канада http://terrainformatica.com
Дата: 28.05.08 16:20
Оценка:
Здравствуйте, remark, Вы писали:

R>Ну ладно-ладно, туплю. Нужен auto_ptr, как ты сказал.


В общем случае нужен stack on the heap.

Для C++ по всей видимости вполне себе будет достаточно объявления _generator как CRTP
структуры/шаблона плюс поле _generatror<NAME>* _stack.

Это точно будет работать — т.е. можно и рекурсивные вызовы делать (но только себя самого)

bool operator()(T& _rv)
{
  do { 
     ....    

  } while(_pop());
}

bool _pop()
{
  if(!_stack) return false;
  _generatror<NAME>* t = _stack;
  *this = *_stack;
  delete t;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.