Espacios de nombres
Variantes

std::pair<T1,T2>::swap

De cppreference.com
 
 
Biblioteca de servicios
Apoyo del lenguaje
Apoyo de tipos (tipos básicos, RTTI)
Macros de prueba de característica de la biblioteca (C++20)
Servicios de programa
Funciones variádicas
Apoyo de corrutinas (C++20)
Apoyo de contratos (C++26)
Comparación de tres vías (C++20)
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

 
std::pair
Funciones miembro
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.

Parámetros

other - Par de valores a intercambiar.

Valor de retorno

(Ninguno)

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)

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)

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.

Véase también

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