'In geri dönüş değeri ile çözülebileceğine, neden bu kadar't bir lambda fonksiyonu'in?
#include <iostream>
int main(){
auto lambda = [] {
return 7;
};
std::cout << lambda() << '\n';
}
Bu program ve 7 derler yazdırır.
Lambda dönüş türü tamsayı türü 7 dönüş değeri temel için birebir.
Neden bu sıradan fonksiyonları ile mümkün değil mi?
#include <iostream>
auto function(){
return 42;
}
int main(){
std::cout << function() << '\n';
}
hata: ‘işlev’ kullanır ‘otomatik’ dönüş türü firar olmadan . tür belirleyici fonksiyonu
CEVAP
C 14 will have that feature. -std=c 1y
bayrağı ayarlayarak, GCC ya da çınlama yeni sürümleri ile test edebilirsiniz.
C 14 buna ek olarak, aynı zamanda decltype(auto)
değişkenler olarak decltype(auto)
aynalar () işlevin dönüş değeri decltype
mantığı kullanarak, anlamak için kullanabilirsiniz.
Bir örnek için decltype(auto)
özellikle yararlıdır iletme fonksiyonları için:
template<typename function_type, typename... arg_types>
decltype(auto) do_nothing_but_forward(function_type func, arg_types&&... args) {
return func(std::forward<arg_types>(args)...);
}
decltype(auto)
ile belirtilen bağımsız değişken ile çağrıldığında func
gerçek dönüş türü taklit. Çok sinir bozucu ve hata eğilimli sonunda dönüş türü (kod no more çoğaltılması C 11'de yok.
Neden bu geri dönüş.(() fonksiyonu) he...
Neden C-yakalama-değeri 0 x'in la...
Garip PHP hata: ''t içerik y...
Ne kadar zarif hesapların yapılabilmes...
Python birden çok geri dönüş değeri gö...