std::swap(std::optional) - cppreference.com
De cppreference.com
| Definido en el archivo de encabezado |
||
|
|
(desde C++17) | |
Sobrecarga el algoritmo std::swap para std::optional. Intercambia el estado de lhs con el de rhs. Efectivamente llama a lhs.swap(rhs).
Esta plantilla de función no participa en la resolución de sobrecargas a menos que std::is_move_constructible_v<T> y std::is_swappable_v<T> sean ambas true.
Parámetros
| lhs, rhs | - | Objetos optional cuyos estados hay que intercambiar.
|
Valor de retorno
(Ninguno)
Excepciones
Ejemplo
#include <iostream> #include <optional> #include <string> int main() { std::optional<std::string> a{"██████"}, b{"▒▒▒▒▒▒"}; auto imprimir = [&](auto const& s) { std::cout << s << "\t" << "a = " << a.value_or("(nulo)") << " " << "b = " << b.value_or("(nulo)") << '\n'; }; imprimir("Inicialmente:"); std::swap(a, b); imprimir("swap(a, b):"); a.reset(); imprimir("\n""a.reset():"); std::swap(a, b); imprimir("swap(a, b):"); }
Salida:
Inicialmente: a = ██████ b = ▒▒▒▒▒▒ swap(a, b): a = ▒▒▒▒▒▒ b = ██████ a.reset(): a = (nulo) b = ██████ swap(a, b): a = ██████ b = (nulo)
Véase también
| Intercambia el contenido. (función miembro pública) [editar] |