Namespaces
Variants

operator==(std::move_only_function)

Depuis fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support linguistique
Support des types (types de base, RTTI)
Macros de test de fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (C++26)
Comparaison à trois voies
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilitaires généraux
Opérateurs relationnels (obsolète en C++20)
 
Objets fonction
Invocation de fonction
(C++17)(C++23)
Objet fonction identité
(C++20)
Adaptateurs d'opérateur transparents
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Anciens binders et adaptateurs
(jusqu'à C++17*)
(jusqu'à C++17*)
(jusqu'à C++17*)
(jusqu'à C++17*)
(jusqu'à C++17*)  
(jusqu'à C++17*)
(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)
(jusqu'à C++20*)
(jusqu'à C++20*)
(jusqu'à C++17*)(jusqu'à C++17*)
(jusqu'à C++17*)(jusqu'à C++17*)

(jusqu'à C++17*)
(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)
(jusqu'à C++20*)
(jusqu'à C++20*)
 
 
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

#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)