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>> | (1) | (parallelism TS v2) | 
| template< class T, class Abi > const_where_expression<simd_mask<T, Abi>, const simd<T, Abi>> | (2) | (parallelism TS v2) | 
| template< class T, class Abi > where_expression<simd_mask<T, Abi>, simd_mask<T, Abi>> | (3) | (parallelism TS v2) | 
| template< class T, class Abi > const_where_expression<simd_mask<T, Abi>, const simd_mask<T, Abi>> | (4) | (parallelism TS v2) | 
| template< class T > where_expression<bool, T> | (5) | (parallelism TS v2) | 
| template< class T > const_where_expression<bool, const T> | (6) | (parallelism TS v2) | 
Constructs a new const_where_expression or where_expression.
1-6) Constructs a where_expression from given mask and value parameters.
Parameters
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.