sau_timer::sau_timer(int secs, timerparam f) : strnd(io),
t(io, boost::posix_time::seconds(secs))
{
assert(secs > 0);
this->f = f;
//t.async_wait(boost::bind(&sau_timer::exec, this, _1));
t.async_wait(strnd.wrap(boost::bind(&sau_timer::exec, this)));
boost::thread thrd(&io,this);
io.run();
//thrd(&sau_timer::start_timer);
}
Dies ist der Code, den ich im Konstruktor für die Klasse 'sau_timer' habe (die hoffentlich einen Timer in einem separaten Thread laufen lassen wird und dann rufe eine andere Funktion auf).boost :: bind, boost :: asio, boost :: thread und classes
Leider atm, wenn ich zu kompilieren versuchen, erhalte ich folgende Fehlermeldung:
1> c: \ program files \ boost \ boost_1_39 \ boost \ bind \ bind.hpp (246): Fehler C2064: term bewertet nicht zu einer Funktion, die 1 Argumente nimmt
Sowie eine ganze Reihe von Warnungen. Was mache ich falsch? Ich habe alles versucht, was mir einfällt, danke.
Konnten Sie sau_timer :: exec Erklärung geben? Ist es eine no-arg-Member-Funktion, eine arg statische Funktion oder etwas anderes? –
void sau_timer :: exec (const boost :: system :: fehlercode &) { \t (f) (params); } – Xenoprimate