std::swap(std::variant)
De cppreference.com
Definido en el archivo de encabezado <variant>
|
||
template <class... Types> void swap(variant<Types...>& lhs, variant<Types...>& rhs) noexcept(/* véase más abajo */); |
(desde C++17) | |
Sobrecarga el algoritmo std::swap para std::variant. Efectivamente llama a lhs.swap(rhs).
Esta sobrecarga solo participa en la resolución de sobrecargas si is_move_constructible_v<T_i> y is_swappable_v<T_i> son ambas true
para toda T_i
en Types...
Contenido |
[editar] Parámetros
lhs, rhs | - | Objetos variant es cuyos valores hay que intercambiar.
|
[editar] Valor de retorno
(Ninguno)
[editar] Excepciones
[editar] Ejemplo
Ejecuta este código
#include <variant> #include <string> #include <iostream> auto print = [](auto const& v, char term = '\n') { std::visit([](auto&& o) { std::cout << o; }, v); std::cout << term; }; int main() { std::variant<int, std::string> v1{123}, v2{"XYZ"}; print(v1, ' '); print(v2); std::swap(v1, v2); print(v1, ' '); print(v2); std::variant<double, std::string> v3{3.14}; // std::swap(v1, v3); // ERROR: ~ paquetes de parámetros inconsistentes }
Salida:
123 XYZ XYZ 123
[editar] Véase también
Intercambia con otro variante. (función miembro pública) |