operator==(std::move_only_function)
Depuis fr.cppreference.net
friend bool operator==( const std::move_only_function& f, std::nullptr_t ) noexcept;
|
(depuis C++23) | |
Vérifie si l'adaptateur f possède une cible invocable en le comparant formellement à std::nullptr_t. Les adaptateurs vides (c'est-à-dire les adaptateurs sans cible) sont égaux lors de la comparaison, les fonctions non vides sont différentes lors de la comparaison.
Cette fonction n'est pas visible lors d'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.
L'!= opérateur est synthétisé à partir de operator==.
Paramètres
| f | - |
std::move_only_function
à comparer
|
Valeur de retour
! f .
Exemple
Exécuter ce code
#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) |