◐ Shell
clean mode source ↗

std::weak_ptr - cppreference.com

Da cppreference.com.

Questa pagina è stata tradotta in modo automatico dalla versione in ineglese della wiki usando Google Translate.

La traduzione potrebbe contenere errori e termini strani. Muovi il puntatore sopra al testo per vedere la versione originale. Puoi aiutarci a correggere gli gli errori. Per ulteriori istruzioni clicca qui.

Click here for the English version of this page

<metanoindex/>

<tbody> </tbody>

Elemento definito nell'header

<memory>

template< class T > class weak_ptr;

(dal C++11)

std::weak_ptr è un puntatore intelligente che contiene un non proprietario ("debole"), riferimento a un oggetto gestito da std::shared_ptr. Deve essere convertito in std::shared_ptr per accedere l'oggetto di riferimento.

Original:

std::weak_ptr is a smart pointer that holds a non-owning ("weak") reference to an object that is managed by std::shared_ptr. It must be converted to std::shared_ptr in order to access the referenced object.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

std::weak_ptr modelli temporanea di proprietà:. quando un oggetto ha bisogno di essere accessibile solo se esiste, e può essere cancellato in qualsiasi momento da un altro utente, std::weak_ptr viene utilizzato per monitorare l'oggetto, ed è convertito al std::shared_ptr di assumere proprietà temporanea. Se il std::shared_ptr originale viene distrutto in questo momento, la vita dell'oggetto è prorogato fino al std::shared_ptr temporaneo si distrugge anche la.

Original:

std::weak_ptr models temporary ownership: when an object needs to be accessed only if it exists, and it may be deleted at any time by someone else, std::weak_ptr is used to track the object, and it is converted to std::shared_ptr to assume temporary ownership. If the original std::shared_ptr is destroyed at this time, the object's lifetime is extended until the temporary std::shared_ptr is destroyed as well.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Inoltre, std::weak_ptr viene utilizzato per interrompere i riferimenti circolari di std::shared_ptr.

Original:

In addition, std::weak_ptr is used to break circular references of std::shared_ptr.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Membri tipi

Membro tipo

Original:

Member type

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Definition
element_type T

Membri funzioni

crea un nuovo weak_ptr

Original:

creates a new weak_ptr

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(metodo pubblico) [modifica]

distrugge un weak_ptr

Original:

destroys a weak_ptr

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(metodo pubblico) [modifica]

assegna il weak_ptr

Original:

assigns the weak_ptr

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(metodo pubblico) [modifica]

Modificatori

Original:

Modifiers

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

rilascia la proprietà dell'oggetto gestito

Original:

releases the ownership of the managed object

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(metodo pubblico) [modifica]

swap gli oggetti gestiti

Original:

swaps the managed objects

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(metodo pubblico) [modifica]

Osservatori

Original:

Observers

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

restituisce il numero di oggetti shared_ptr che gestiscono l'oggetto

Original:

returns the number of shared_ptr objects that manage the object

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(metodo pubblico) [modifica]

Verifica se l'oggetto di riferimento è già stato cancellato

Original:

checks whether the referenced object was already deleted

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(metodo pubblico) [modifica]

crea un shared_ptr che gestisce l'oggetto indicato

Original:

creates a shared_ptr that manages the referenced object

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(metodo pubblico) [modifica]

fornisce proprietario basato ordinamento di puntatori deboli

Original:

provides owner-based ordering of weak pointers

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(metodo pubblico) [modifica]

Non membri funzioni

specializzata l'algoritmo std::swap

Original:

specializes the std::swap algorithm

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.


(funzione di modello) [modifica]

Esempio

Dimostra come blocco viene utilizzato per garantire la validità del puntatore .

Original:

Demonstrates how lock is used to ensure validity of the pointer.

The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

#include <iostream>
#include <memory>

std::weak_ptr<int> gw;

void f()
{
    if (auto spt = gw.lock()) { // Has to be copied into a shared_ptr before usage
	std::cout << *spt << "\n";
    }
    else {
        std::cout << "gw is expired\n";
    }
}
 
int main()
{
    {
        auto sp = std::make_shared<int>(42);
	gw = sp;

	f();
    }

    f();
}

Output: