<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
![]() |
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. |
You can help to correct and verify the translation. Click here for instructions.
[modifier] Exigences
ValueSwappable
siValueSwappable
ifYou can help to correct and verify the translation. Click here for instructions.
T
type satisfait aux exigences Iterator
T
satisfies the Iterator
requirementsYou can help to correct and verify the translation. Click here for instructions.
x
objet dereferencable de T
type (c'est à dire toute valeur autre que l'itérateur de fin), *x
satisfait aux exigences 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
, ce qui signifie que chaque fois que la bibliothèque standard effectue un swap, il utilise l'équivalent de 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.
[modifier] Exemple
#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 }