Sto cercando il nome corretto di un modello di classe con le seguenti funzionalità:
L'interfaccia sarebbe simile a questa, dove Foo è un segnaposto per il nome che sto cercando.
template<typename T>
struct Foo
{
T* operator->();
T* operator*();
}
Quindi imita un puntatore a un oggetto, proprio come std::unique_ptr<>
e std::shared_ptr<>
do. A differenza di questi, avere Foo<T>
su un oggetto non implica la proprietà su questo oggetto. Tutto ciò che Foo<T>
fa è fornire un puntatore a questo oggetto e, questa è la parte importante, una volta che l'oggetto Foo<T>
punta a viene cancellato entrambi gli operatori restituiscono nullptr
invece del puntatore ora non valido.
Sto cercando un nome descrittivo per questa classe. Forse ha semantica intersecante con un modello ben definito di cui non sono a conoscenza?