# std::experimental::where

From cppreference.com
< cpp‎ | experimental‎ | simd

Defined in header `<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) |
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) |
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) |
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) |
template < class T > where_expression<bool, T> where( /*see below*/ mask, T& value ) noexcept; | (5) |
template < class T > const_where_expression<bool, const T> where( /*see below*/ mask, const T& value ) noexcept; | (6) |

Constructs a new const_where_expression or where_expression.

1-6) constructs a where_expression from given mask and value parameters.

### Parameters

1-4)

mask | - | the simd_mask object
value | - | reference to the object that mask applies on

5-6)

mask | - | the mask of type bool
value | - | reference to the scalar that mask applies on

### Return value

The constructed const_where_expression or where_expression.

### Notes

5-6) uses implementation defined type of mask, so that implicit conversions from other types to bool is disabled.

### Example

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/experimental/simd/where&oldid=102697"