Merhaba Ibrahim,
std::function gercekten guclu bir sey. Fonksiyon isaretcileri ile ilgilenmen bence cok guzel cunku fonksiyonel programlama cok guclu. Gun gectikce daha cok kullaniliyor ve her yerde kendini gosteriyor.
Ben her yerde std::function kullanmani oneririm eger tabi C++ derleyicin varsa.
std::function ' in en guzel noktasi bu sinifa hem functor, lamdba, mem_fn , serbest fonksiyon , uye fonksiyon her seyi atabilmen,
Benim gordugum en guzel kullanim yolu ise
void
foo ( std::function<void()> fonksiyon )
{
fonksiyon();
}
Burda fonksiyon parametresini
foo({ std::cout << "Merhaba Dunya" ;});
void yardimciFoo()
{
std::cout << "Merhaba Dunya" ;
}
foo ( yardimciFoo )
struct FunctorFoo
{
void operator()()
{
std::cout << "Merhaba Dunya" ;
}
}
FunctorFoo functor;
foo ( functor )
Gibi degisik sekillerde cagirabilirsin. Burda C++ std::function 'u yerine C isaretcilerini kullansaydin biraz daha uzar ve bence daha anlasilmaz olurdu.
Bunun yani sira isaret gosterici dizileri kafami karistirmistir grammer olarak std::function da bu bence daha guzel ve kolay.
Saygilarimla
Erdemdem
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]