# std::experimental::where_expression

< cpp‎ | experimental‎ | simd

定义于头文件 `<experimental/simd>` |  |
template < class M, class V > class where_expression; |  | (并行 TS v2)

类模板 `where_expression` 抽象给定的算术或数据并行类型非 const 对象的被选择元素的概念。被选择元素表示对于所有 i ∈ {j ∈ ℕ0 | j < M::size() ⋀ mask[j]} 的 data[i] 。

### 模板形参

M | - | 掩码类型
V | - | 应用 M 到其上的值类型

(M, V) 的合法组合是： (simd_mask<T, Abi>, simd<T, Abi>) 、 (simd_mask<T, Abi>, simd_mask<T, Abi>) 、 (bool, T) 。

### 成员函数

operator= | 赋值被选择位置 (公开成员函数)
operator+= operator-= operator*= operator/= operator%= operator&= operator|= operator^= operator<<= operator>>= | 复合赋值运算符 (公开成员函数)
operator++ operator-- | 自增和自减运算符 (公开成员函数)
copy_from | 从地址加载到被选择位置 (公开成员函数)

### 示例