swap (std::move_only_function)
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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 . Effectue effectivement l'appel lhs. swap ( rhs ) .
Cette fonction n'est pas visible par la recherche
non qualifiée
ou
qualifiée
ordinaire, et ne peut être trouvée que par la
recherche dépendante des arguments
lorsque
std::move_only_function<FunctionType>
est une classe associée des arguments.
Table des matières |
Paramètres
| lhs, rhs | - |
std::move_only_function
objets dont les états doivent être échangés
|
Valeur de retour
(aucun)
Exemple
#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) |