Espacios de nombres
Variantes
Acciones

std::pair::swap

De cppreference.com
< cpp‎ | utility‎ | pair
 
 
Biblioteca de servicios
 
std::pair
Funciones miembro
pair::swap
Funciones no miembro
(hasta C++20)(hasta C++20)(hasta C++20)(hasta C++20)(hasta C++20)(C++20)
(C++11)
Guías de deducción(C++17)
Clases auxiliares
(C++11)
 
void swap(pair& other) noexcept(/* véase más abajo */);
(desde C++11)
(hasta C++20)
constexpr void swap(pair& other) noexcept(/* véase más abajo */);
(desde C++20)

Intercambia first con other.first y second con other.second.

Contenido

[editar] Parámetros

other - Par de valores a intercambiar.

[editar] Valor de retorno

(Ninguno)

[editar] Excepciones

Especificación noexcept:   (desde C++11)
noexcept(

     noexcept(swap(first, other.first)) &&
     noexcept(swap(second, other.second))

)

En la expresión de más arriba, el identificador swap se busca de la misma manera que el usado por el rasgo std::is_nothrow_swappable de C++17.

(hasta C++17)
Especificación noexcept:   (desde C++11)
noexcept(

     std::is_nothrow_swappable_v<first_type> &&
     std::is_nothrow_swappable_v<second_type>

)
(desde C++17)

[editar] Ejemplo

#include <iostream>
#include <utility>
#include <string>
int main()
{
    std::pair<int, std::string> p1, p2;
    p1 = std::make_pair(10, "prueba");
    p2.swap(p1);
    std::cout << "(" << p2.first << ", " << p2.second << ")\n";
}

Salida:

(10, prueba)

[editar] Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 2456 C++11 La especificación noexcept está mal formada. Se hizo funcionar.

[editar] Véase también

Intercambia los valores de dos objetos
(plantilla de función) [editar]