<div class="t-tr-text">Concepts C + +:<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
De cppreference.com
![]() | This page has been machine-translated from the English version of the wiki using Google Translate. The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
Deux objets de ce type peut être déréférencé et les valeurs résultantes peuvent être échangés à l'aide sans réserve swap() appel de fonction dans le contexte où les deux std::swap et les swap()s définies par l'utilisateur sont visibles .
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.
[modifier]Exigences
Type T est
ValueSwappable
siOriginal:
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
type satisfait aux exigences 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)
Pour toute
x
objet dereferencable de T
type (c'est à dire toute valeur autre que l'itérateur de fin), *x
satisfait aux exigences 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.
De nombreuses fonctions de la bibliothèque standard attendent de leurs arguments pour satisfaire
ValueSwappable
, ce qui signifie que chaque fois que la bibliothèque standard effectue un swap, il utilise l'équivalent de 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.
[modifier]Exemple
#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}