Giriş
Şu satırı dahil ederiz.
placeholder
Tek parametre için şöyle yaparız.
Şöyle yaparız.
std::bind(), boost::bind() ve lambda metodların hepsi boost::function nesnesine atanabilir. Şöyle yaparız.
Şu satırı dahil ederiz.
#include <boost/bind.hpp>
#include <boost/function.hpp>
En fazla 9 placeholder kullanılabilir. Açıklaması şöyleThis implementation supports function objects with up to nine arguments. This is an implementation detail, not an inherent limitation of the design.
Tek parametre için şöyle yaparız.
void func (int a) {...};
boost::function<void(int)> f = bind (&obj::func,this,_1);
İki parametre için şöyle yaparız.void func (int a,int b) {...};
boost::function<void(int,int)> f = bind (&obj::func,this,_1,
_2);
Nesnenin Referans Olarak Kullanılması
Şöyle yaparız. boost:::ref'te kullanılabilir.Foo foo = ;
boost::function<int(void)> f = boost::bind(&Foo::getAge, &foo);
Nesnenin KopyalanmasıŞöyle yaparız.
Foo foo = ;
boost::function<int(void)> f = boost::bind(&Foo::getAge, foo);
boost::bind() çağrısı boost::function() nesnesine bağlanırstd::bind(), boost::bind() ve lambda metodların hepsi boost::function nesnesine atanabilir. Şöyle yaparız.
Sample demo;
io.setCallback(std::bind(&Sample::foo, demo, std::placeholders::_1));
io.setCallback(boost::bind(&Sample::bar, demo, _1));
io.setCallback([&demo](int32_t i) { demo.qux(i); });
Hiç yorum yok:
Yorum Gönder