int sortStack(mystack s, mystack &t) { while(!s.empty()) { int tmp = s.top(); s.pop(); while(!t.empty() && t.top() > tmp) { s.push(t.top()); t.pop(); } t.push(tmp); } return 0; }
void fun2(mystack<std::function<bool()>>& stk) { bool done = false; int itr = 0; while (!done) { std::mutex mtx; std::unique_lock<std::mutex> lck(mtx); stk.not_empty.wait(lck, [&](){ return !stk.empty(); }); // On prend le premier élement auto msg = stk.top(); stk.pop(); // Tu fais ton traitement avec 'msg' et tu mets à jour 'done' std::cout << "fun2: " + std::to_string(itr) << std::endl; ++itr; done = msg(); // par exemple } }