C++ 0x'de, bazı sınıfların kopyalanıp taşınamayacağı yasal/yasal mıdır? Yeniden boyutlandıran heterojen bir sınıfı uygulamaya çalışıyorum ve bazı sınıfların kopyalanmasına ihtiyaç duyması ve bazılarının hareket etmesi gerekiyorsa, bunun üstesinden gelebileceğime emin değilim.Kopyalayın, ancak hareket etmeyin
5
A
cevap
5
Evet, yasal. C++ kodlayıcıları (benim gibi!) Bilmek olsa da, bunun olabileceğini tahmin etmelisiniz.
Merak etme, bir sınıfa kopabilir ancak hareket edemezse ne tür bir güvene dayanıyorsunuz?
0
Taşıma kurucusunun korumalı/özel olmasını sağlamanın, bu sınıfın nesnelerini taşıma yeteneğini sınırlamanın bir yolu olduğundan eminim. Bunu bir şablonda beklerseniz? Ben öyle düşünmüyorum. Bu tür bir kontrol için std::enable_if
'a ihtiyacınız var.
class MyClass {
public:
/* Copyable... */
MyClass(const MyClass&);
MyClass& operator= (const MyClass&);
/* ... but not movable. */
MyClass(MyClass&&) = delete;
MyClass& operator= (MyClass&&) = delete;
};
Ancak, herkes bu yapmak isteyeyim neden olarak iyi bir neden düşünemiyorum: Bir sınıf copyable ama hareketli olmamak için
İlgili konular
- 1. React onLütfen ateş etmeyin
- 2. Dokunma Android 4.x'te touchmove'dan sonra ateş etmeyin mi?
- 3. Karakter dizilerini sıralarken durumları göz ardı etmeyin
- 4. Android nasıl programlanabilir olarak rahatsız etmeyin (dnd)
- 5. "- (id) init" storyboard kullanırken ViewController'da ateş etmeyin
- 6. GHC, kapsam dışı hataları göz ardı etmeyin
- 7. Dosyaları Azure VM'ye kopyalayın
- 8. Tersine diziyi kopyalayın
- 9. Bir Laravel projesini kopyalayın
- 10. Üretim veritabanını sahne katmanına kopyalayın.
- 11. CGContext'i başka bir CGContext'e kopyalayın
- 12. Dosyayı TrueCrypt biriminden panoya kopyalayın?
- 13. iphone - yaw, pitch and roll hareket hareket aralığı
- 14. SVN: Nasıl yapıldığını ve ne üzerinde olduğunu göz ardı etmeyin?
- 15. nasıl hareket ve JS
- 16. hareket dizi elemanı
- 17. Geçiş hareket olayı/
- 18. Öğelerin hareket etmesini sağlayın
- 19. İki SQLite Veritabanını Android'deki varlık klasörüne kopyalayın
- 20. Resim, uygulamada hareket etmiyor
- 21. Web Dağıtım Projesi - Oluşturulduktan Sonra Dosyaları Kopyalayın
- 22. GZipStream Dosyaları ayrı bir dizine kopyalayın
- 23. Vuex & VueJS (mutasyon işleyicileri dışında vuex mağaza durumunu mutasyona etmeyin)
- 24. Android'de ListView'de çalışmaya devam etmeyin. Xamarin Formları ile Oluşturma
- 25. Köprüler kullanın ve sonra köprüden hedefe kopyalayın.
- 26. Klasördeki dosyaları python'da bir dizine kopyalayın
- 27. openCV C++ ile görüntünün bir bölümünü kopyalayın
- 28. Veriyi arabellek olmaksızın fstream'den stringstream'e kopyalayın?
- 29. Klavye hareket ettiğinde ekran düzgün hareket etmiyor - android
- 30. Bir div içinde hareket etmeden div içinde hareket etme
Yeniden boyutlandıran heterojen bir yığın. Minimum çaba ile C++ 03 uyumluluğunu istersem, her ikisine de izin vermeliyim. – Puppy
Hmm ... özel olarak kopyalanabilir, bozucu (bu mantıklı bir terim bu mu?) Nesneleri ile kırılan kodda ne var? Daha önce hiç karşılaşmadığım için merak ediyorum. – templatetypedef
Bunu söylediğin iyi bir şey. Bazı nedenlerden dolayı, taşınan nesnelerin tahrip edilmesine gerek olmadığını aklımda tutuyordum. Whoops. – Puppy