Namespaces
Variants

std::unary_negate

Depuis fr.cppreference.net
 
 
Bibliothèque d'utilités
Support du langage
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 (déprécié en C++20)
 
Objets fonction
Invocation de fonction
(C++17)(C++23)
Objet fonction identité
(C++20)
Enveloppes d'opérateurs transparentes
(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 lieurs 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*)
 
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)
(déprécié en C++17)
(supprimé en C++20)

std::unary_negate est un objet fonction enveloppe retournant le complément du prédicat unaire qu'il contient.

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

std::unary_negate Les objets sont facilement construits avec la fonction d'aide std::not1.

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 );
(constexpr depuis C++14)

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

Paramètres

pred - objet fonction prédicat

std::unary_negate::operator()

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

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