Namespaces
Variants

std::not1

Depuis fr.cppreference.net
 
 
Bibliothèque des 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 (déprécié en C++20)
 
Objets fonction
Invocation de fonction
(C++17)(C++23)
Objet fonction identité
(C++20)
Wrappers d'opérateurs 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*)
 
Défini dans l'en-tête <functional>
template< class Predicate >
std::unary_negate<Predicate> not1( const Predicate& pred );
(jusqu'à C++14)
template< class Predicate >
constexpr std::unary_negate<Predicate> not1( const Predicate& pred );
(depuis C++14)
(déprécié en C++17)
(supprimé en C++20)

std::not1 est une fonction utilitaire pour créer un objet fonction qui retourne le complément du prédicat unaire passé en argument. L'objet fonction créé est de type std::unary_negate<Predicate>.

Le type du prédicat unaire doit définir un type membre, argument_type, qui est convertible vers 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 d'un autre appel à std::not1 ont ce type défini, de même que les objets fonctions dérivés de la fonctionnalité dépréciée std::unary_function.

Paramètres

pred - prédicat unaire

Valeur de retour

std::not1 retourne un objet de type std:: unary_negate < Predicate > , construit avec pred .

Exemple

#include <algorithm>
#include <functional>
#include <iostream>
#include <iterator>
#include <numeric>
#include <vector>
struct LessThan7 : std::unary_function<int, bool>
{
    bool operator()(int i) const { return i < 7; }
};
int main()
{
    std::vector<int> v(10);
    std::iota(std::begin(v), std::end(v), 0);
    std::cout << std::count_if(begin(v), end(v), std::not1(LessThan7())) << '\n';
    // la même chose que ci-dessus en utilisant std::function
    std::function<bool(int)> less_than_9 = [](int x) { return x < 9; };
    std::cout << std::count_if(begin(v), end(v), std::not1(less_than_9)) << '\n';
}

Sortie :

3
1

Voir aussi

(C++17)
crée un objet fonction qui retourne le complément du résultat de l'objet fonction qu'il contient
(modèle de fonction)
(obsolète en C++17) (supprimé en C++20)
objet fonction wrapper retournant le complément du prédicat unaire 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::binary_negate personnalisé
(modèle de fonction)
(obsolète en C++11) (supprimé en C++17)
crée un wrapper d'objet fonction 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)