Namensräume
Varianten
Aktionen

std::not1

Von cppreference.com
< cpp‎ | utility‎ | functional
 
 
Dienstprogramm-Bibliotheken
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Coroutine-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Drei-Wege-Vergleich
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationale Operatoren (in C++20 veraltet)
 
Funktionsobjekte
Funktionsaufruf
(C++17)(C++23)
Identitätsfunktions-Objekt
(C++20)
Transparente Operator-Wrapper
(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*)
not1
(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 der Header-Datei <functional>
template< class Predicate >
std::unary_negate<Predicate> not1( const Predicate& pred );
(bis C++14)
template< class Predicate >
constexpr std::unary_negate<Predicate> not1( const Predicate& pred );
(seit C++14)
(veraltet in C++17)
(in C++20 entfernt)

std::not1 ist eine Hilfsfunktion zum Erstellen eines Funktions-Objekts, das die Negation des übergebenen unären Prädikats zurückgibt. Das erstellte Funktions-Objekt ist vom Typ std::unary_negate<Predicate>.

Der Typ des unären Prädikats muss einen Mitgliedstyp, argument_type, definieren, der in den Parametertyp des Prädikats konvertierbar ist. Die von std::ref, std::cref, std::negate, std::logical_not, std::mem_fn, std::function, std::hash oder aus einem anderen Aufruf von std::not1 erhaltenen unären Funktions-Objekte haben diesen Typ definiert, ebenso wie Funktions-Objekte, die vom veralteten std::unary_function abgeleitet sind.

Inhalt

[bearbeiten] Parameter

pred - unäres Prädikat

[bearbeiten] Rückgabewert

std::not1 gibt ein Objekt vom Typ std::unary_negate<Predicate> zurück, konstruiert mit pred.

[bearbeiten] Ausnahmen

(keine)

[bearbeiten] Beispiel

#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';
 
    // the same as above using 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';
}

Ausgabe

3
1

[bearbeiten] Siehe auch

(C++17)
erstellt ein Funktions-Objekt, das das Komplement des Ergebnisses des gehaltenen Funktions-Objekts zurückgibt
(Funktions-Template) [bearbeiten]
(in C++17 veraltet)(in C++20 entfernt)
Wrapper-Funktionsobjekt, das die Negation (Komplement) des von ihm gehaltenen unären Prädikats zurückgibt
(Klassenvorlage) [edit]
(C++11)
kopierfähiger Wrapper für jedes kopierkonstruierbare aufrufbare Objekt
(Klassen-Template) [bearbeiten]
Move-only-Wrapper für jedes aufrufbare Objekt, das Qualifizierer in einer gegebenen Aufrufsignatur unterstützt
(Klassen-Template) [bearbeiten]
(in C++17 veraltet)(in C++20 entfernt)
konstruiert ein benutzerdefiniertes std::binary_negate-Objekt
(Funktionsvorlage) [edit]
(in C++11 veraltet)(in C++17 entfernt)
erstellt einen adaptor-kompatiblen Funktionsobjekt-Wrapper aus einem Funktionszeiger
(Funktionsvorlage) [edit]
(in C++11 veraltet)(in C++17 entfernt)
Adaptor-kompatible Basisklasse für unäre Funktionen
(Klassenvorlage) [edit]