Namespaces
Variants

std:: not1

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* )
not1
( 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* )
( until C++20* )
( until 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)
(obsolète en C++17)
(supprimé en C++20)

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

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 .

Table des matières

Paramètres

pred - prédicat unaire

Valeur de retour

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

Exceptions

(aucun)

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)