Namespaces
Variants

std::valarray<T>:: operator+,-,~,!

From cppreference.net
valarray < T > operator + ( ) const ;
(1)
valarray < T > operator - ( ) const ;
(2)
valarray < T > operator~ ( ) const ;
(3)
valarray < bool > operator ! ( ) const ;
(4)
**Anmerkung:** Da der gesamte Inhalt innerhalb von ` ` Tags liegt (was als Code-ähnliche Umgebung betrachtet werden kann) und gemäß den Anweisungen C++-spezifische Begriffe nicht übersetzt werden sollen, bleibt der deutsche Text auf die Nummerierungen (1)-(4) beschränkt. Die HTML-Struktur und der C++-Code bleiben vollständig unverändert.

Wendet unäre Operatoren auf jedes Element im numerischen Array an.

Inhaltsverzeichnis

Parameter

(keine)

Rückgabewert

Ein numerisches Array, das Elemente mit Werten enthält, die durch Anwendung des entsprechenden Operators auf die Werte in * this erhalten wurden.

Ausnahmen

Kann implementierungsdefinierte Ausnahmen auslösen.

Hinweise

Jeder der Operatoren kann nur instanziiert werden, wenn die folgenden Anforderungen erfüllt sind:

  • Der angegebene Operator kann auf den Typ T angewendet werden.
  • Der Ergebniswert kann eindeutig in T (1-3) oder bool (4) konvertiert werden.

Die Funktion kann mit einem Rückgabetyp implementiert werden, der sich von std::valarray unterscheidet. In diesem Fall weist der Ersatztyp die folgenden Eigenschaften auf:

Beispiel

#include <iostream>
#include <string_view>
#include <valarray>
template<typename T>
void print(std::string_view const note,
           std::valarray<T> const vala, // by-value, see Notes above
           std::string_view const term = "\n")
{
    std::cout << note << std::boolalpha << std::showpos;
    for (T const element : vala)
        std::cout << '\t' << element;
    std::cout << term;
}
int main()
{
    std::valarray<int> x{1, 2, 3, 4};
    print<int>("x: ", x);
    print<int>("+x: ", +x);
    print<int>("+ + x: ", + + x);
    print<int>("-x: ", -x);
    print<int>("- - x: ", - - x, "\n\n");
    std::valarray<short> y{0, 1, -1, 0x7fff};
    print<short>("y: ", y);
    print<short>("~y: ", ~y);
    print<short>("~~y: ", ~~y, "\n\n");
    std::valarray<bool> z{true, false};
    print<bool>("z: ", z);
    print<bool>("!z: ", !z);
    print<bool>("!!z: ", !!z);
}

Mögliche Ausgabe:

x:      +1      +2      +3      +4
+x:     +1      +2      +3      +4
+ + x:  +1      +2      +3      +4
-x:     -1      -2      -3      -4
- - x:  +1      +2      +3      +4
y:      +0      +1      -1      +32767
~y:     -1      -2      +0      -32768
~~y:    +0      +1      -1      +32767
z:      true    false
!z:     false   true
!!z:    true    false

Siehe auch

wendet zusammengesetzte Zuweisungsoperatoren auf jedes Element des valarray an
(öffentliche Elementfunktion)
wendet binäre Operatoren auf jedes Element von zwei valarrays oder einem valarray und einem Wert an
(Funktions-Template)