Sanırım değil ama teyit etmek istiyorum. const Foo&&
için herhangi bir kullanım, Foo
bir sınıf tipidir var mı?const için rvalue referansları herhangi bir kullanım var mı?
cevap
Bunlar bazen yararlıdır. Taslak C++ 0x kendisi örneğin, birkaç yerde bunları kullanır:
template <class T> void ref(const T&&) = delete;
template <class T> void cref(const T&&) = delete;
yukarıdaki iki aşırı yükler, diğer ref(T&)
ve cref(const T&)
fonksiyonları SağDeğerler (Aksi mümkün olurdu) bağlamak etmediğinden emin.
Güncelleme
Sadece maalesef kamuya açık olmayan resmi standardını N3290, kontrol ettik ve 20.8 Fonksiyon/p2 [function.objects] nesneleri de vardır:
template <class T> void ref(const T&&) = delete;
template <class T> void cref(const T&&) = delete;
Son olarak, en son post-C++ 11 taslağını, halka açık olan N3485 ve 20.8 İşlev nesnelerinde [function.objects]/p2 olarak kontrol ettim:
template <class T> void ref(const T&&) = delete;
template <class T> void cref(const T&&) = delete;
012 https://www.youtube.com/watch?v=JhgWFYfdIho#t=54m20s
[cppreference] 'a bakarak (http://en.cppreference.com/w/cpp/utility/functional/ref) artık böyle değil. Herhangi bir fikir neden? Başka herhangi bir yerde 'const T && kullanılır? – Pubby
Aslında, cpferans silinmiş işlevleri göstermeyebilir. Standardı kontrol etmedim. – Pubby
@Pubby cppreference kesinlikle silinen işlevleri görüntüler, bunlar yanlışlıkla atlandı. – Cubbi
İzin verilir ve işlevler const
'a göre sıralanır, ancak const Foo&&
tarafından belirtilen const nesnesinden taşıyamayacağınız için bunlar kullanışlı değildir.
tam olarak ne demek istiyorsunuz: Bu videoda – fredoverflow
Neden bir const rvalue-ref hareket edemedi? –
@FredOverflow, aşırı sıralaması şudur: 'const T & T & const T && T &&' –
Bunun doğrudan yararlı olacak bir durum düşünemiyorum, ama dolaylı olarak kullanılabilecek:
template<class T>
void f(T const &x) {
cout << "lvalue";
}
template<class T>
void f(T &&x) {
cout << "rvalue";
}
template<class T>
void g(T &x) {
f(T());
}
template<class T>
void h(T const &x) {
g(x);
}
T g kadar f 'sx deyişle, T const olan Bir T const & &.
O muhtemeldir (taşımak veya nesneyi kullanmaya çalıştığında) bu f bir comile hatasına yol açar, ama f değiştirmeden, bu SolDeğerler çağrıda olamaz böylece bir rvalue-ref sürebilir rvalue (yukarıdaki çok basit örnekte olduğu gibi).
- 1. En önemli const & rvalue ref
- 2. Kotlin'de müteahhit referansları var mı?
- 3. Yerel işlev bildirimleri için herhangi bir kullanım var mı?
- 4. Bir VS2010 hatası? Bir const OLMADAN, bir const olmayan referansı bağlamak için bir uyarı mı?
- 5. Moodle için herhangi bir API var mı?
- 6. rvalue başvurular
- 7. PHP'de basit kullanım var mı?
- 8. Dönüş "Bu" rvalue
- 9. Will C++ 0x RValue referansları veya diğer özelliklerin akış performansı üzerinde etkisi olacak mı?
- 10. Kullanım bildirimi ile qw (: const) kullanımı
- 11. Bir const kurucu olarak böyle bir şey var mı?
- 12. Bahar Roo için Thymeleaf için herhangi bir ekleme var mı?
- 13. Görme engelliler için tarayıcı kullanım istatistikleri var mı?
- 14. Temel türler üzerinde yineleme yaparken const başvuru kullanmanın herhangi bir dezavantajı var mı?
- 15. Bir sihirbaz oluşturmak için herhangi bir desen var mı?
- 16. "Vurgulu" kodun herhangi bir yolu var mı?
- 17. Herhangi bir FACEBOX alt türü var mı?
- 18. Herhangi bir İşleme programı profiler var mı?
- 19. Tomcat'e herhangi bir IIS eşdeğeri var mı?
- 20. Dispatcher.DisableProcessing için pratik kullanım mı?
- 21. iOS'ta Android'in herhangi bir karşılığı var mı?
- 22. PLINQ'in herhangi bir faydası var mı?
- 23. Herhangi bir IPMI simülatörü var mı?
- 24. Herhangi bir ücretsiz php tarayıcı var mı?
- 25. Herhangi bir guava genel görünümü var mı?
- 26. Herhangi bir ccTalk kütüphanesi var mı?
- 27. Herhangi bir Clojure DSL var mı?
- 28. Herhangi bir standart silme functor var mı?
- 29. Herhangi bir GMP logaritma fonksiyonu var mı?
- 30. Herhangi bir sprite koleksiyonunu bilen var mı?
, STL nedenini söylemez rağmen 'const &&' çok önemli olduğunu söylüyor "derecelendirildi" ifadesi? Aşırı yükleme çözünürlüğü ile ilgili bir şey var mı? Verilen tip bir const rvalue-ref götüren bir hamle ctor varsa –