29 Numerics library [numerics]

29.10 Data-parallel types [simd]

29.10.6 Class template basic_simd [simd.class]

29.10.6.4 basic_simd unary operators [simd.unary]

Effects in [simd.unary] are applied as unary element-wise operations.
constexpr basic_simd& operator++() noexcept;
Constraints: requires (value_type a) { ++a; } is true.
Effects: Increments every element by one.
Returns: *this.
constexpr basic_simd operator++(int) noexcept;
Constraints: requires (value_type a) { a++; } is true.
Effects: Increments every element by one.
Returns: A copy of *this before incrementing.
constexpr basic_simd& operator--() noexcept;
Constraints: requires (value_type a) { --a; } is true.
Effects: Decrements every element by one.
Returns: *this.
constexpr basic_simd operator--(int) noexcept;
Constraints: requires (value_type a) { a--; } is true.
Effects: Decrements every element by one.
Returns: A copy of *this before decrementing.
constexpr mask_type operator!() const noexcept;
Constraints: requires (const value_type a) { !a; } is true.
Returns: A basic_simd_mask object with the element set to !operator[](i) for all i in the range of [0, size()).
constexpr basic_simd operator~() const noexcept;
Constraints: requires (const value_type a) { ~a; } is true.
Returns: A basic_simd object with the element set to ~operator[](i) for all i in the range of [0, size()).
constexpr basic_simd operator+() const noexcept;
Constraints: requires (const value_type a) { +a; } is true.
Returns: *this.
constexpr basic_simd operator-() const noexcept;
Constraints: requires (const value_type a) { -a; } is true.
Returns: A basic_simd object where the element is initialized to -operator[](i) for all i in the range of [0, size()).