<div class="t-tr-text">C + +: concetti<div class="t-tr-dropdown"><div><div><div class="t-tr-dropdown-arrow-border"></div><div class="t-tr-dropdown-arrow"></div><div class="t-tr-dropdown-h">Original:</div><div class="t-tr-dropdown-orig">C++ concepts:</div><div class="t-tr-dropdown-notes">The text has been machine-translated via [http://translate.google.com Google Translate].<br/> You can help to correct and verify the translation. Click [http://en.cppreference.com/w/Cppreference:MachineTranslations here] for instructions.</div></div></div></div></div> ValueSwappable
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. |
Due oggetti di questo tipo possono essere dereferenziati ed i valori risultanti possono essere scambiati con non qualificato swap() chiamata di funzione nel contesto in cui sia std::swap e definiti dall'utente swap()s sono visibili.
Original:
Two objects of this type can be dereferenced and the resulting values can be swapped using unqualified function call swap() in the context where both std::swap and the user-defined swap()s are visible.
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.
[modifica]Requisiti
Tipo T è
ValueSwappable
seOriginal:
Type T is
ValueSwappable
ifThe 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.
1)
T
Tipo soddisfa i requisiti Iterator
Original:
Type
T
satisfies the Iterator
requirementsThe 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.
2)
Per qualsiasi oggetto
x
dereferencable di T
tipo (vale a dire, un valore diverso l'iteratore fine), *x
soddisfa i requisiti Swappable
.Original:
For any dereferencable object
x
of type T
(that is, any value other than the end iterator), *x
satisfies the Swappable
requirements.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.
Molte funzioni della libreria standard aspettano che i loro argomenti per soddisfare
ValueSwappable
, il che significa che ogni volta che la libreria standard esegue una di swap, utilizza l'equivalente di usingstd::swap; swap(*iter1, *iter2):.Original:
Many standard library functions expect their arguments to satisfy
ValueSwappable
, which means that any time the standard library performs a swap, it uses the equivalent of usingstd::swap; swap(*iter1, *iter2):.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.
[modifica]Esempio
#include <iostream>#include <vector> class IntVector {std::vector<int> v; IntVector& operator=(IntVector);// not assignablepublic:void swap(IntVector& other){ v.swap(other.v);}};void swap(IntVector& v1, IntVector& v2){ v1.swap(v2);} int main(){ IntVector v1, v2;// IntVector is Swappable, but not MoveAssignable IntVector* p1 =&v1; IntVector* p2 =&v2;// IntVector* is ValueSwappablestd::iter_swap(p1, p2);// OK: iter_swap requires ValueSwappable// std::swap(v1, v2); // compiler error! std::swap requires MoveAssignable}