[simd.mask.cassign]

# 29 Numerics library [[numerics]](./#numerics)

## 29.10 Data-parallel types [[simd]](simd#mask.cassign)

### 29.10.10 basic_mask non-member operations [[simd.mask.nonmembers]](simd.mask.nonmembers#simd.mask.cassign)

#### 29.10.10.2 basic_mask compound assignment [simd.mask.cassign]

[ð](#lib:operator&=,basic_mask)

`friend constexpr basic_mask&
  operator&=(basic_mask& lhs, const basic_mask& rhs) noexcept;
friend constexpr basic_mask&
  operator|=(basic_mask& lhs, const basic_mask& rhs) noexcept;
friend constexpr basic_mask&
  operator^=(basic_mask& lhs, const basic_mask& rhs) noexcept;
`

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L20386)

Let *op* be the operator[.](#1.sentence-1)

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L20389)

*Effects*: These operators apply *op* to lhs and rhs as a
binary element-wise operation[.](#2.sentence-1)

[3](#3)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/numerics.tex#L20394)

*Returns*: lhs[.](#3.sentence-1)
