std::weak_ptr::owner_before
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> template< class T > bool owner_before( const weak_ptr<T>& other) const; |
||
template< class T > bool owner_before( const std::shared_ptr<T>& other) const; |
||
Controlla se questo
weak_ptr precede other in attuazione definito proprietario-based (in alternativa al fair-based) ordine. L'ordine è tale che due puntatori intelligenti confronta equivalente solo se sono entrambi vuoti o se sia proprio lo stesso oggetto, anche se i valori dei puntatori ottenuti get () sono differenti (ad esempio perché puntare sottooggetti diverse all'interno della stessa oggetto)Original:
Checks whether this
weak_ptr precedes other in implementation defined owner-based (as opposed to value-based) order. The order is such that two smart pointers compare equivalent only if they are both empty or if they both own the same object, even if the values of the pointers obtained by get() are different (e.g. because they point at different subobjects within the same object)The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Questo ordinamento è usato per fare in comune e puntatori deboli utilizzabili come chiavi in contenitori associativi, di norma nell'ambito std::owner_less.
Original:
This ordering is used to make shared and weak pointers usable as keys in associative containers, typically through std::owner_less.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Parametri
| other | - | il std::shared_ptr o std::weak_ptr da confrontare
Original: the std::shared_ptr or std::weak_ptr to be compared The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. |
Valore di ritorno
true se *this precede other, false altrimenti. Implementazioni comuni confrontare gli indirizzi dei blocchi di controllo.Original:
true if *this precedes other, false otherwise. Common implementations compare the addresses of the control blocks.The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
You can help to correct and verify the translation. Click here for instructions.
Esempio
#include <iostream>
#include <memory>
struct Foo {
int n1;
int n2;
Foo(int a, int b) : n1(a), n2(b) {}
};
int main()
{
auto p1 = std::make_shared<Foo>(1, 2);
std::shared_ptr<int> p2(p1, &p1->n1);
std::shared_ptr<int> p3(p1, &p1->n2);
std::cout << std::boolalpha
<< "p2 < p3 " << (p2 < p3) << '\n'
<< "p3 < p2 " << (p3 < p2) << '\n'
<< "p2.owner_before(p3) " << p2.owner_before(p3) << '\n'
<< "p3.owner_before(p2) " << p3.owner_before(p2) << '\n';
std::weak_ptr<int> w2(p2);
std::weak_ptr<int> w3(p3);
std::cout
// << "w2 < w3 " << (w2 < w3) << '\n' // won't compile
// << "w3 < w2 " << (w3 < w2) << '\n' // won't compile
<< "w2.owner_before(w3) " << w2.owner_before(w3) << '\n'
<< "w3.owner_before(w2) " << w3.owner_before(w2) << '\n';
}
Output:
p2 < p3 true
p3 < p2 false
p2.owner_before(p3) false
p3.owner_before(p2) false
w2.owner_before(w3) false
w3.owner_before(w2) false
Vedi anche
(C++11) |
fornisce di tipo misto proprietario basato su ordinamento di puntatori condivisi e debole Original: provides mixed-type owner-based ordering of shared and weak pointers The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (classe template) |