operator== (std::move_only_function)
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Old binders and adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
friend
bool
operator
==
(
const
std::
move_only_function
&
f,
std::
nullptr_t
)
noexcept
;
|
(depuis C++23) | |
Vérifie si le wrapper f possède une cible appelable en le comparant formellement avec std::nullptr_t . Les wrappers vides (c'est-à-dire les wrappers sans cible) sont considérés égaux, les fonctions non vides sont considérées non égales.
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.
L'opérateur
!=
est
synthétisé
à partir de
operator==
.
Table des matières |
Paramètres
| f | - |
std::move_only_function
à comparer
|
Valeur de retour
! f .
Exemple
#include <functional> #include <iostream> #include <utility> using SomeVoidFunc = std::move_only_function<void(int) const>; class C { public: C() = default; C(SomeVoidFunc func) : void_func_(std::move(func)) {} void default_func(int i) const { std::cout << i << '\n'; }; void operator()() const { if (void_func_ == nullptr) // comparaison spécialisée avec nullptr default_func(7); else void_func_(7); } private: SomeVoidFunc void_func_{}; }; void user_func(int i) { std::cout << (i + 1) << '\n'; } int main() { C c1; C c2(user_func); c1(); c2(); }
Sortie :
7 8
Voir aussi
vérifie si le
std::move_only_function
a une cible
(fonction membre publique) |
|
|
(supprimé en C++20)
|
compare un
std::function
avec
nullptr
(modèle de fonction) |