, C++ standart bölüm § 5.1.2/6: [expr.prim.lambda]
olmayan bir jenerik lambda ifade için kapalı tip hiçbir lambda-yakalama ile, ortak bir sanal olmayan açık-olmayan const dönüşüm fonksiyonu, işaretçi işlevi ile aynı parametre ve geri dönüş tipini kapatma türünün işlev çağrısı operatörü olan C++ dil bağlantısı (7.5) ile işlevine sahiptir. Bu dönüşüm işlevi tarafından döndürülen değer bir yakalama (: [&]
varsayılan bir) vardır, çağrıldığında, sizin lambda yana kapatma türünün işlev çağrısı operatörü
çağırma aynı etkiye sahip bir fonksiyonun adresi olacaktır Çalıştırmak için bir işaretçiye dönüştürme operatörü yoktur.
Alternatif olarak, lambda sarmak için std::function<>
kullanabilirsiniz:
#include <functional>
#include <iostream>
int main()
{
int i = 42;
std::function<void(void)> f = [&](){ std::cout << i; };
f();
}
otomatik f = [&]() {...}? – Kiroxas
Yakalamalı lamelleri, işlev işaretçilerine dönüştürülemez. – user657267
Referans ile bir lambda işlevini iletmeye çalışmıyorsunuz. – juanchopanza