<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
|
|
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/>
swap() chiamata di funzione nel contesto in cui sia std::swap e definiti dall'utente swap()s sono visibili.swap() in the context where both std::swap and the user-defined swap()s are visible.You can help to correct and verify the translation. Click here for instructions.
Requisiti
ValueSwappable seValueSwappable ifYou can help to correct and verify the translation. Click here for instructions.
T Tipo soddisfa i requisiti IteratorT satisfies the Iterator requirementsYou can help to correct and verify the translation. Click here for instructions.
x dereferencable di T tipo (vale a dire, un valore diverso l'iteratore fine), *x soddisfa i requisiti Swappable.x of type T (that is, any value other than the end iterator), *x satisfies the Swappable requirements.You can help to correct and verify the translation. Click here for instructions.
ValueSwappable, il che significa che ogni volta che la libreria standard esegue una di swap, utilizza l'equivalente di using std::swap; swap(*iter1, *iter2):.ValueSwappable, which means that any time the standard library performs a swap, it uses the equivalent of using std::swap; swap(*iter1, *iter2):.You can help to correct and verify the translation. Click here for instructions.
Esempio
#include <iostream>
#include <vector>
class IntVector {
std::vector<int> v;
IntVector& operator=(IntVector); // not assignable
public:
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 ValueSwappable
std::iter_swap(p1, p2); // OK: iter_swap requires ValueSwappable
// std::swap(v1, v2); // compiler error! std::swap requires MoveAssignable
}