Daha önce benzer bir question sorulmuştur, ama hala kafam karıştı. STL, inanıyorum ki, sadece referans olarak geçmek, çok parçalı bir ortamda sonuçlara yol açabileceğinden, sadece değere göre geçer. İki veya daha fazla iş parçacığı değişebilir bir lambda yürütürken, deyin., lambda değerini veya referansı geçmeyi kolaylaştırır.
template <typename F>
inline void invoke(F&& f)
{
f();
}
Bu, herhangi bir fonksiyon nesnesine bağlanan sadece const&
yaptığınız gibi, ama belki de inlining için kötü bir fikir: Ben sadece bir lambda çağırmak istediğinizde Şu anda evrensel referans kullanın. Bir lambda, kopyalayıcı tarafından derleyici tarafından inline daha kolay aktarılıyor mu? Geçilen lambdaların mümkün olduğunca "inline" olmasını isterim.
Değiştirilebilir lambda nedir? –
mutable \t - \t, kopyanın yakaladığı parametreleri değiştirmesine ve const olmayan üye işlevlerini çağırmasına izin verir – user1095108
Bunun için bir anahtar kelime var. Unut bunu. –