mercredi 4 août 2021

c++ timer terminate without an active exception?

I want to design a timer in c++, to execute my function after a fixed time.

the code likes like:

#include <thread>
typedef void (*callback)();
class timer {
 public:
   void start(int sec, callback f) {
     std::thread t([&sec, &f]() {sleep(sec); f();});
   }
};

void test () {
  printf("here called\n");
}
int main() {
  timer t;
  t.start(3, test);
  while (1);
}

but when i run this code, i got:

terminate called without an active exception
[1]    3168208 abort (core dumped)  ./a.out

can you help on this? and, any suggestions for a more flexible timer design?

Aucun commentaire:

Enregistrer un commentaire