std::experimental::where_expression
From cppreference.com
                    
                                        
                    < cpp | experimental | simd
                    
                                                            
                    | Defined in header  <experimental/simd> | ||
| template < class M, class V > class where_expression; | ||
The class template where_expression abstracts the notion of selected elements of a given non-const object of arithmetic or data-parallel type. Selected elements signifies the elements data[i] for all i ∈ {j ∈ ℕ0 | j < M::size() ⋀ mask[j]}.
Template parameters
| M | - | The mask type | 
| V | - | The value type M applies on | 
Valid combinations of (M, V) are: (simd_mask<T, Abi>, simd<T, Abi>), (simd_mask<T, Abi>, simd_mask<T, Abi>), (bool, T).
Member functions
| assigns to selected positions (public member function) | |
| compound operators (public member function) | |
| increment and decrement operators (public member function) | |
| loads from address to selected positions (public member function) |