swap(std::move_only_function)
De es.cppreference.net
friend void swap( std::move_only_function& lhs, std::move_only_function& rhs ) noexcept;
|
(desde C++23) | |
Sobrecarga el algoritmo std::swap para std::move_only_function. Intercambia el estado de lhs con el de rhs. Efectivamente llama a lhs.swap(rhs).
Esta función no es visible mediante búsqueda no calificada ordinaria o búsqueda calificada, y solo se puede encontrar mediante búsqueda dependiente de argumentos cuando std::move_only_function<FunctionType> es una clase asociada de los argumentos.
Parámetros
| lhs, rhs | - |
std::move_only_function
objetos cuyos estados intercambiar
|
Valor de retorno
(ninguno)
Ejemplo
Ejecutar este código
#include <concepts> #include <functional> #include <iostream> void foo(const char* str, int x) { std::cout << "foo(\"" << str << "\", " << x << ")\n"; } void bar(const char* str, int x) { std::cout << "bar(\"" << str << "\", " << x << ")\n"; } int main() { std::move_only_function<void(const char*, int) const> f1{foo}; std::move_only_function<void(const char*, int) const> f2{bar}; f1("f1", 1); f2("f2", 2); std::cout << "std::ranges::swap(f1, f2);\n"; std::ranges::swap(f1, f2); // encuentra el hidden friend f1("f1", 1); f2("f2", 2); }
Salida:
foo("f1", 1)
bar("f2", 2)
std::ranges::swap(f1, f2);
bar("f1", 1)
foo("f2", 2)
Véase también
intercambia los objetivos de dos objetos
std::move_only_function
(función miembro pública) |
|
|
(C++11)
|
especializa el algoritmo
std::swap
(plantilla de función) |