Namespaces
Variants

std::unary_negate

Von de.cppreference.net
 
 
Dienstprogrammbibliothek
Sprachunterstützung
Typunterstützung (grundlegende Typen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Koroutinenunterstützung (C++20)
Vertragsunterstützung (C++26)
Dreiseitiger Vergleich
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Allgemeine Dienstprogramme
Relationale Operatoren (veraltet in C++20)
Ganzzahlvergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Swap und Typoperationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabular-Typen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
Funktionsobjekte
Funktionsaufruf
(C++17)(C++23)
Identitäts-Funktionsobjekt
(C++20)
Transparente Operatorwrapper
(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)

Alte Binder und Adaptoren
(bis C++17*)
(bis C++17*)
(bis C++17*)
(bis C++17*)
(bis C++17*)(bis C++17*)(bis C++17*)(bis C++17*)
(bis C++20*)
(bis C++20*)
(bis C++17*)(bis C++17*)
(bis C++17*)(bis C++17*)

(bis C++17*)
(bis C++17*)(bis C++17*)(bis C++17*)(bis C++17*)
(bis C++20*)
(bis C++20*)
 
Definiert in Header <functional>
template< class Predicate >
struct unary_negate : public std::unary_function<Predicate::argument_type, bool>;
(bis C++11)
template< class Predicate >
struct unary_negate;
(seit C++11)
(veraltet in C++17)
(entfernt in C++20)

std::unary_negate ist ein Wrapper-Funktionsobjekt, das das Komplement des unären Prädikats, das es enthält, zurückgibt.

Der unäre Prädikatstyp muss einen Mitgliedstyp argument_type definieren, der in den Parametertyp des Prädikats konvertierbar ist. Die unären Funktionsobjekte, die von std::ref, std::cref, std::negate, std::logical_not, std::mem_fn, std::function, std::hash oder von einem anderen Aufruf von std::not1 erhalten werden, haben diesen Typ definiert, ebenso wie Funktionsobjekte, die von dem veralteten std::unary_function abgeleitet sind.

std::unary_negate-Objekte werden einfach mit der Hilfsfunktion std::not1 konstruiert.

Mitgliedstypen

Typ Definition
argument_type Predicate::argument_type
result_type bool

Memberfunktionen

(constructor)
Konstruiert ein neues unary_negate-Objekt mit dem bereitgestellten Prädikat
(public member function)
operator()
Gibt das logische Komplement des Ergebnisses eines Aufrufs des gespeicherten Prädikats zurück
(public member function)

std::unary_negate::unary_negate

explicit unary_negate( Predicate const& pred );
(constexpr seit C++14)

Erstellt ein std::unary_negate Funktionsobjekt mit dem gespeicherten Prädikat pred.

Parameter

pred - Prädikat-Funktionsobjekt

std::unary_negate::operator()

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

Gibt das logische Komplement des Ergebnisses des Aufrufs von pred(x) zurück.

Parameter

x - an das Prädikat zu übergebendes Argument

Rückgabewert

Das logische Komplement des Ergebnisses des Aufrufs von pred ( x ) .

Beispiel

#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()));
    // C++11-Lösung:
    // Verwende 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);
}

Ausgabe:

4

Siehe auch

(deprecated in C++17) (removed in C++20)
Wrapper-Funktionsobjekt, das das Komplement des binären Prädikats zurückgibt, das es enthält
(Klassentemplate)
(C++11)
Kopierbarer Wrapper für jedes kopierkonstruierbare aufrufbare Objekt
(Klassentemplate)
Nur-verschiebbarer Wrapper für jedes aufrufbare Objekt, das Qualifier in einer gegebenen Aufrufsignatur unterstützt
(Klassentemplate)
(deprecated in C++17) (removed in C++20)
Konstruiert benutzerdefinierte std::unary_negate Objekte
(Funktionstemplate)
(deprecated in C++11) (removed in C++17)
Erstellt einen adapterkompatiblen Funktionsobjekt-Wrapper aus einem Funktionszeiger
(Funktionstemplate)
(deprecated in C++11) (removed in C++17)
Adapterkompatible Basisklasse für unäre Funktionen
(Klassentemplate)