Giriş
Şu satırı dahil ederiz.
Constructor
Şöyle yaparız.
Şöyle yaparız.
signal ve scoped_connection aynı sınıfın üyesi yapılırsa nesne yok olurken signal ve slot otomatik ayrılır. Elimizde şöyle bir kod olsun.
Şu satırı dahil ederiz.
#include <boost/signals2.hpp>
Bu sınıf signals2::connection nesnesinden kalıtır.Constructor
Şöyle yaparız.
typedef boost::function<void(int)> Signal_f;
using boost::signals2::scoped_connection;
boost::signals2::signal< void(int) > my_signal;
Signal_f functor = ...;
std::cout << "Created signal, and it has "
<< my_signal.num_slots() << " subscribers." << std::endl;
// the scoped_connection object is RAII
auto con = scoped_connection(my_signal.connect(functor));
disconnect metoduŞöyle yaparız.
// disconnect the connection object, not the signal
con.disconnect();
Örneksignal ve scoped_connection aynı sınıfın üyesi yapılırsa nesne yok olurken signal ve slot otomatik ayrılır. Elimizde şöyle bir kod olsun.
class foo {
public:
template <class F>
boost::signals2::scoped_connection register_callback(F&& f) {
return signal.connect(std::forward<F>(f));
}
void trigger() {
signal();
}
private:
boost::signals2::signal<void()> signal;
};
Şöyle yaparız.class bar {
public:
bar() {
connection = foo.register_callback([this] { myhandler(); });
}
void myhandler() {
...
}
private:
boost::signals2::scoped_connection connection;
};
Hiç yorum yok:
Yorum Gönder