29 Numerics library [numerics]

29.10 Data-parallel types [simd]

29.10.9 Class template basic_mask [simd.mask.class]

29.10.9.4 Unary operators [simd.mask.unary]

constexpr basic_mask operator!() const noexcept; constexpr see below operator+() const noexcept; constexpr see below operator-() const noexcept; constexpr see below operator~() const noexcept;
Let op be the operator.
Returns: A data-parallel object where the element is initialized to the results of applying op to operator[](i) for all i in the range of [0, size()).
Remarks: If there exists a vectorizable signed integer type I such that sizeof(I) == Bytes is true, operator+, operator-, and operator return an enabled specialization R of basic_vec such that R​::​value_type denotes integer-from<Bytes> and R​::​size() == size() is true.
Otherwise, these operators are defined as deleted and their return types are unspecified.