# std::experimental::where

< cpp‎ | experimental‎ | simd

定义于头文件 `<experimental/simd>` |  |
template < class T, class Abi > where_expression<simd_mask<T, Abi>, simd<T, Abi>> where( const typename simd<T, Abi>::mask_type& mask, simd<T, Abi>& value) noexcept; | (1) | (并行 TS v2)
template < class T, class Abi > const_where_expression<simd_mask<T, Abi>, const simd<T, Abi>> where( const typename simd<T, Abi>::mask_type& mask, const simd<T, Abi>& value) noexcept; | (2) | (并行 TS v2)
template < class T, class Abi > where_expression<simd_mask<T, Abi>, simd_mask<T, Abi>> where( const nodeduce_t<simd_mask<T, Abi>>& mask, simd_mask<T, Abi>& value) noexcept; | (3) | (并行 TS v2)
template < class T, class Abi > const_where_expression<simd_mask<T, Abi>, const simd_mask<T, Abi>> where( const nodeduce_t<simd_mask<T, Abi>>& mask, const simd_mask<T, Abi>& value) noexcept; | (4) | (并行 TS v2)
template < class T > where_expression<bool, T> where( /*see below*/ mask, T& value ) noexcept; | (5) | (并行 TS v2)
template < class T > const_where_expression<bool, const T> where( /*see below*/ mask, const T& value ) noexcept; | (6) | (并行 TS v2)

构造新的 const_where_expression 或 where_expression 。

1-6) 从给定的 mask 和 value 参数构造 where_expression 。

### 参数

1-4)

mask | - | `simd_mask` 对象
value | - | 到应用掩码于其上的对象的引用

5-6)

mask | - | `bool` 类型掩码
value | - | 到应用掩码于其上的标量的引用

### 返回值

构造的 const_where_expression 或 where_expression 。

### 注意

5-6) 使用掩码的实现定义类型，以之禁用从其他类型到 bool 的隐式转换。

### 示例