Ben aşağıdaki işleviBir lambda yakalama için C++ functor rvalue referansı nasıl geçilir?
template<class Function>
void f(Function&& g) {
h(..., [&g](){g();});
}
O bir işlevi, bir lambda veya argüman olarak bir functor kabul eden bir işlev f
var var. o işlevini h
çağırır İçinde hangi ı g
arama ve yakalama tarafından g
görevlileri tarafından yapılıyor argüman olarak bir lambda geçmek.
- Ben lambda yakalama alanında
g
veya&g
geçerlerse? - funktor yukarıdaki kod ile kopyalanan edilecek mi?
Normalde fonksiyonu benzeri nesneler değer geçirilir. Onları kopyalamak son derece ucuz olmalı. Nesneleriniz böyle değilse, muhtemelen tamamen doğru olmayan bir şey yapıyorsunuz demektir. –