In C ++, i puntatori generalmente hanno molte più funzionalità associate a loro di quanto sia realmente necessario. Un modello di classe che racchiude un puntatore e rimuove la maggior parte delle funzioni meno utilizzate (aritmetica, indicizzazione, eliminazione). Ogni funzione potrebbe quindi decidere quanto è potente un puntatore che richiede e prendere il tipo appropriato.
Tuttavia, usare un simile tipo avrebbe senso in un progetto reale? Gli errori causati da un'aritmetica / eliminazione non intenzionale sono abbastanza comuni da giustificare lo sforzo aggiuntivo?
Per chiarire: sto considerando questo come un sistema a fianco di weak_ptr
, shared_ptr
, unique_ptr
- questi tre sono grandi quando è coinvolta la proprietà, ma a volte non sono utili riferimenti nullable o resettabili.