std::bit_not
Von cppreference.com
< cpp | utility | functional
| Definiert in der Header-Datei <functional> |
||
| template< class T = void > struct bit_not; |
(seit C++14) | |
Funktionsobjekt für die bitweise NOT-Operation. Ruft effektiv operator~ für den Typ T auf.
Inhalt |
[bearbeiten] Spezialisierungen
Die Standardbibliothek bietet eine Spezialisierung von std::bit_not an, wenn T nicht spezifiziert ist, wodurch die Parametertypen und der Rückgabetyp abgeleitet werden.
| (C++14) |
Funktionsobjekt, das ~x implementiert und Parameter- sowie Rückgabetypen ableitet (Klassenvorlagenspezialisierung) |
[edit] Mitgliedertypen
| Typ | Definition |
result_type (deprecated in C++17)(removed in C++20) |
T
|
argument_type (veraltet in C++17)(entfernt in C++20) |
T
|
[bearbeiten] Memberfunktionen
| operator() (C++14) |
gibt das Ergebnis der bitweisen NOT-Operation ihres Arguments zurück (öffentliche Memberfunktion) |
std::bit_not::operator()
| constexpr T operator()( const T& arg ) const; |
(seit C++14) | |
Gibt das Ergebnis der bitweisen NOT-Operation von arg zurück.
Parameter
| arg | - | Wert, für den die bitweise NOT-Operation berechnet werden soll |
Rückgabewert
Das Ergebnis von ~arg.
[edit] Exceptions
Kann implementierungsdefinierte Ausnahmen auslösen.
Mögliche Implementierung
constexpr T operator()(const T& arg) const { return ~arg; } |
[bearbeiten] Anmerkungen
Obwohl std::bit_not über den Post-C++11-Vorschlag N3421 hinzugefügt wird, wird er von gängigen Implementierungen als Teil der Lösung für LWG-Issue 660 (mit Ausnahme seiner transparenten Spezialisierung std::bit_not<>) behandelt und ist daher in deren C++98/03-Modus verfügbar.