<div class="t-tr-text">C + +: conceitos<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
![]() |
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. |
Dois objetos deste tipo podem ser dereferenced e os valores resultantes podem ser trocados usando swap() chamada não qualificada função no contexto em que tanto std::swap e os swap()s definidas pelo usuário são visíveis.
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.
[editar] Requisitos
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
satisfaz os requisitos 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)
Para qualquer objeto
x
dereferencable de T
tipo (ou seja, qualquer valor diferente do iterador final), *x
satisfaz os requisitos 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.
Muitas funções da biblioteca padrão esperam que os seus argumentos para satisfazer
ValueSwappable
, o que significa que a qualquer momento a biblioteca padrão executa um swap, ele usa o equivalente a using std::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 using std::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.
[editar] Exemplo
#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 }