wrapper C ++ per "rilasciare" un oggetto singleton [chiuso]

0

Ho una classe come questa

    template <typename T, typename Policy>
    AutoObjectRelease {
public:
    AutoObjectRelease(T& obj):obj_(obj){}

    ~AutoObjectRelease(){ Policy::Release(obj_); }
private:
    T&  obj_;
}

Mi chiedo come si chiamerebbe questa classe, poiché mi sembra che questo potrebbe essere un modello abbastanza comune. Mi chiedo anche in quali altre situazioni utilizzi una classe del genere. Nel mio caso uso l'oggetto singleton solo sporadicamente e volevo assicurarmi che non rimanga caricato per tutta la durata dell'applicazione. Cosa ne pensi di questo? Un'altra idea sarebbe quella di fare il conteggio dell'oggetto singleton conteggiato, ma non sapere esattamente quali sarebbero i benefici per un oggetto singleton - potrebbe solo complicare l'implementazione (è necessario renderlo thread sicuro anche)

    
posta Ghita 05.09.2011 - 19:43
fonte

1 risposta

4

Si chiama un puntatore intelligente. Nello specifico, la versione univoca è nel prossimo standard come unique_ptr e la versione conteggiata di riferimento è in Boost, TR1 e C ++ 11 come shared_ptr .

Per quanto riguarda i suoi usi con Singletons, lascia che ti dia un suggerimento: non usare Singletons e non avrai molti, molti, molti problemi.

Questo è esattamente un puntatore intelligente, ma con l'eliminazione predefinita non fornita.

    
risposta data 05.09.2011 - 19:46
fonte

Leggi altre domande sui tag