Namespaces
Variants

std:: unary_negate

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
( until C++17* ) ( until C++17* )
( until C++17* ) ( until C++17* )

( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
unary_negate
( until C++20* )
( until C++20* )
Défini dans l'en-tête <functional>
template < class Predicate >
struct unary_negate : public std:: unary_function < Predicate :: argument_type , bool > ;
(jusqu'à C++11)
template < class Predicate >
struct unary_negate ;
(depuis C++11)
(obsolète en C++17)
(supprimé en C++20)

std::unary_negate est une fonction objet enveloppe qui retourne le complément du prédicat unaire qu'elle contient.

Le type de prédicat unaire doit définir un type membre, argument_type , qui est convertible en type de paramètre du prédicat. Les objets de fonction unaires obtenus à partir de std::ref , std::cref , std::negate , std::logical_not , std::mem_fn , std::function , std::hash , ou d'un autre appel à std::not1 ont ce type défini, tout comme les objets de fonction dérivés de l'obsolète std::unary_function .

std::unary_negate objects are easily constructed with helper function std::not1 .

Table des matières

Types membres

Type Définition
argument_type Predicate :: argument_type
result_type bool

Fonctions membres

(constructor)
construit un nouvel objet unary_negate avec le prédicat fourni
(fonction membre publique)
operator()
retourne le complément logique du résultat d'un appel au prédicat stocké
(fonction membre publique)

std::unary_negate:: unary_negate

explicit unary_negate ( Predicate const & pred ) ;
(jusqu'en C++14)
constexpr explicit unary_negate ( Predicate const & pred ) ;
(depuis C++14)

Construit un objet fonction std::unary_negate avec le prédicat stocké pred .

Paramètres

pred - objet fonction prédicat

std::unary_negate:: operator()

bool operator ( ) ( argument_type const & x ) const ;
(jusqu'à C++14)
constexpr bool operator ( ) ( argument_type const & x ) const ;
(depuis C++14)

Retourne le complément logique du résultat de l'appel à pred ( x ) .

Paramètres

x - argument à passer au prédicat

Valeur de retour

Le complément logique du résultat de l'appel à pred ( x ) .

Exemple

#include <algorithm>
#include <functional>
#include <iostream>
#include <vector>
struct less_than_7 : std::unary_function<int, bool>
{
    bool operator()(int i) const { return i < 7; }
};
int main()
{
    std::vector<int> v(7, 7);
    v[0] = v[1] = v[2] = 6;
    std::unary_negate<less_than_7> not_less_than_7((less_than_7()));
    // Solution C++11 :
    // Utiliser std::function<bool (int)>
    // std::function<bool (int)> not_less_than_7 =
    //     [](int x)->bool { return !less_than_7()(x); };
    std::cout << std::count_if(v.begin(), v.end(), not_less_than_7);
}

Sortie :

4

Voir aussi

(obsolète en C++17) (supprimé en C++20)
fonction objet wrapper retournant le complément du prédicat binaire qu'il contient
(modèle de classe)
(C++11)
wrapper copiable de tout objet appelable constructible par copie
(modèle de classe)
wrapper non copiable de tout objet appelable qui supporte les qualificateurs dans une signature d'appel donnée
(modèle de classe)
(obsolète en C++17) (supprimé en C++20)
construit un objet std::unary_negate personnalisé
(modèle de fonction)
(obsolète en C++11) (supprimé en C++17)
crée un wrapper de fonction objet compatible avec les adaptateurs à partir d'un pointeur de fonction
(modèle de fonction)
(obsolète en C++11) (supprimé en C++17)
classe de base de fonction unaire compatible avec les adaptateurs
(modèle de classe)