Aralıklı döngüler için const&&
kullanımının mantıklı olduğu durumlar var mı?const && için menzil uygulamaları?
for (const auto && x : c) // ?
Aralıklı döngüler için const&&
kullanımının mantıklı olduğu durumlar var mı?const && için menzil uygulamaları?
for (const auto && x : c) // ?
Kısa cevap: hayır optimize edilmiş bir şekilde nesneleri hareket etmek istiyorsanız rvalue references
kullanırsınız
range-for loops
(veya başka türlü) içinde const auto&&
için herhangi kullanımları vardır. Taşınan nesneyi değiştiremezseniz, bunu (genel olarak) yapamazsınız. Yani const rvalues
(*) hiçbir pratik kullanımda değildir (onlardan hareket edemezsiniz çünkü onları değiştiremezsiniz).
range-for loops
Bu tartışma yaklaşık const auto&&
tabloya şey getirmezler. Bu SO sonrası örneği için
Kontrol:
Do rvalue references to const have any use? sadece const rvalue referans kullanımını bulduğumuz bazı fonksiyon aşırı yükleri silmektir. Bu, range-for loops
için geçerli değildir. Bu arada
(*), const auto&&
const rvalue referansı, bir yönlendirme referanstır.
* yerde * 'const &&' mantıklı herhangi vakalar var mı? – immibis
@immibis [one] biliyorum (http://en.cppreference.com/w/cpp/utility/functional/ref) – Praetorian
Ben menzil için belirli bir bağlam ile ilgilendi. Bir dizi-için kullanılan 'const oto && 'testerede olduğu [bu kod] (https://blogs.msdn.microsoft.com/larryosterman/2015/11/16/recursively-deleting-a-directorywith-long-filename -support /) ve bunu merak ediyordum. '(Const auto && it: dl) için' 'yerine '' _observing_ öğeleri için '' (const auto & ...)' için kullanmıştım. –