swap(std::move_only_function)
Depuis fr.cppreference.net
friend void swap( std::move_only_function& lhs, std::move_only_function& rhs ) noexcept;
|
(depuis C++23) | |
Surcharge l'algorithme std::swap pour std::move_only_function. Échange l'état de lhs avec celui de rhs. Appelle effectivement lhs.swap(rhs).
Cette fonction n'est pas visible par une recherche non qualifiée ou qualifiée ordinaire, et ne peut être trouvée que par recherche dépendante des arguments lorsque std::move_only_function<FunctionType> est une classe associée aux arguments.
Paramètres
| lhs, rhs | - |
std::move_only_function
objets dont les états doivent être échangés
|
Valeur de retour
(aucun)
Exemple
Exécuter ce code
#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); // finds the hidden friend f1("f1", 1); f2("f2", 2); }
Sortie :
foo("f1", 1)
bar("f2", 2)
std::ranges::swap(f1, f2);
bar("f1", 1)
foo("f2", 2)
Voir aussi
échange les cibles de deux objets
std::move_only_function
(fonction membre publique) |
|
|
(C++11)
|
spécialise l'algorithme
std::swap
(modèle de fonction) |