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. |
<metanoindex/>
<tbody> </tbody>
| Elemento definito nell'header <memory> |
||
|
|
(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. |
Definition |
element_type
|
T
|
Membri funzioni
crea un nuovo Original: creates a new The text has been machine-translated via Google Translate. (metodo pubblico) [modifica] | |
distrugge un Original: destroys a The text has been machine-translated via Google Translate. (metodo pubblico) [modifica] | |
assegna il Original: assigns the The text has been machine-translated via Google Translate. (metodo pubblico) [modifica] | |
Modificatori Original: Modifiers The text has been machine-translated via Google Translate. | |
rilascia la proprietà dell'oggetto gestito Original: releases the ownership of the managed object The text has been machine-translated via Google Translate. (metodo pubblico) [modifica] | |
swap gli oggetti gestiti Original: swaps the managed objects The text has been machine-translated via Google Translate. (metodo pubblico) [modifica] | |
Osservatori Original: Observers The text has been machine-translated via Google Translate. | |
restituisce il numero di oggetti Original: returns the number of The text has been machine-translated via Google Translate. (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. (metodo pubblico) [modifica] | |
crea un Original: creates a The text has been machine-translated via Google Translate. (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. (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. (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: