void someFunction() { LoopState l; for (;;) { Datum d = dataSource.fetch(l); if (!d) break; ... use d ... } }
A more compact usage style:
int main() { LoopState ls; while (int i=testfetch(ls)) { cout << i << endl; } return 0; }