#include <queue>
namespace ... {
class DoWork {
std::queue<int> contexts;
public:
DoWork(int request) {
contexts.push_back(request);
}
void operator () () {
while (!contexts.empty()) {
int request = contexts.pop_front();
if (...) {
contexts.push_back(data);
}
}
}
};
}