ptr_vector
è una copia costruibile e una copia assegnabile. Come può copiare in profondità gli oggetti sottostanti quando non conosce i loro tipi concreti?In che modo boost :: ptr_vector copia in profondità gli oggetti sottostanti?
6
A
risposta
8
Il contenitore boost::ptr_vector
ha un parametro modello opzionale, CloneAllocator
, che definisce la politica di clonazione. L'allocatore predefinito è heap_clone_allocator
, che richiama semplicemente il costruttore di copie per clonare un oggetto.
Il Clone Allocator è utilizzato come un modo per aggiungere uno strato di riferimento indiretto attorno alla clonazione. Ad esempio, consente di fornire un allocatore personalizzato che gestisca correttamente la clonazione di un tipo non impostabile.
È possibile trovare ulteriori informazioni in the Boost Pointer Containers Library documentation, che spiega i concetti Clona e Clona Allocatore.
Problemi correlati
- 1. In che modo ptr_vector gestisce la memoria?
- 2. Qt equivalente a boost :: ptr_vector?
- 3. In che modo db4o istanzia gli oggetti?
- 4. Copia di oggetti in delphi
- 5. In che modo Java gestisce gli oggetti stringa in memoria?
- 6. Copia profonda di oggetti in Angular
- 7. In che modo gli oggetti Oggetto restituiscono le stringhe? (Java)
- 8. È std :: vector che copia gli oggetti con un push_back?
- 9. In che modo boost :: variant store reference?
- 10. Come serializzare un boost :: ptr_vector usando i cereali?
- 11. Perché gli oggetti lanciati devono essere inizializzati in copia?
- 12. CasperJS fornisce riferimenti agli oggetti PhantomJS sottostanti?
- 13. In che modo i contenitori STL copiano oggetti?
- 14. All'interno delle funzioni C++, in che modo gli oggetti Rcpp vengono passati ad altre funzioni (per riferimento o per copia)?
- 15. In che modo jQuery crea oggetti-matrice?
- 16. Posso disabilitare ogni interazione del mouse con una tela per interagire con gli oggetti sottostanti?
- 17. In movimento/copia istanze di oggetti C++
- 18. In che modo gli oggetti xmlhttprequest vengono creati, uniti e distrutti in Javascript
- 19. In che modo gli oggetti QApplication() e QWidget() sono connessi in PySide/PyQt?
- 20. In che modo gli oggetti Java sono disposti in memoria su Android?
- 21. In che modo gli oggetti WPF derivanti da Freezable possono essere congelati in XAML?
- 22. Copia profonda di oggetti in angolare?
- 23. Copia profonda Mappa in Groovy
- 24. Distruggere gli oggetti in Ember.js
- 25. In che modo Sentry aggrega gli errori?
- 26. In che modo MySQL memorizza gli indici?
- 27. React-Redux di oggetti complessi (profondità) Stato
- 28. impliciti per gli oggetti in Scala
- 29. scala copia oggetti
- 30. Perché Contains confronta gli oggetti in modo diverso da ==?
Ah, quindi devo supportare il concetto clonabile anche se il mio oggetto è copiabile? I documenti sembrano menzionare solo clonabili quando l'oggetto non lo è. –
@Billy: questa è la mia comprensione. Non ho usato 'ptr_vector' estesamente, ma è così che gli altri contenitori di puntatori che ho usato gestiscono la clonazione. –
@Billy: puoi anche usare 'view_clone_allocator' invece di' heap_clone_allocator' per aggirare il requisito clonabile. Quindi non è necessario il sovraccarico di 'new_clone()'. Ovviamente non è possibile copiare in profondità i contenitori. –