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* )
Definiert im 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 eine Wrapper-Funktionsobjekt, das das Komplement des unären Prädikats zurückgibt, das es enthält.

Der unäre Prädikattyp muss einen Membertyp 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 weiteren Aufruf von std::not1 stammen, haben diesen Typ definiert, ebenso wie Funktionsobjekte, die vom veralteten std::unary_function abgeleitet sind.

std::unary_negate -Objekte lassen sich einfach mit der Hilfsfunktion std::not1 erstellen.

Inhaltsverzeichnis

Mitgliedertypen

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 ) ;
(bis C++14)
constexpr explicit unary_negate ( Predicate const & pred ) ;
(seit C++14)

Konstruiert 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 ;
(bis C++14)
constexpr bool operator ( ) ( argument_type const & x ) const ;
(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)