Olası Yinelenen:
Should templated functions take lambda arguments by value or by rvalue reference?Konveyörlere göre değer veya C++ 11 Evrensel Referans?
C++ standart kütüphane fonksiyonları çok gibi değeri functor (işlev işaretçisi veya işlev nesnesini) bağımsız değişken almak:
template <typename F>
void apply(F func)
{
func();
}
.. .Ama Universal Reference tarafından functor geçmek daha iyi olmaz mıydı? böylece gibi:
template <typename F>
void apply(F&& func)
{
func();
}
Eğer durumunu korumak fonksiyon nesneleri geçmesi ve daha yüksek dereceden işlevi döndürdü sonra (muhtemelen değiştirilmiş) durumuna erişimi olabilir Bu şekilde.
Şablonlar derleme zamanında genişletilir/giderilir. Derleme zamanında devlet hakkında nasıl bilgi sahibi olabilirler? –
Birincisi ile kopyadan kaçınmak için her zaman bir referans sarıcı kullanabilirsiniz. –
@Manoj R: Demek istediğim: fn_obj işlev nesnesine sahipseniz, başvuruda bulunursunuz (fn_obj) ve daha sonra fn_obj.state öğesine erişebilirsiniz. – TommiT