From 849aeb5e18c7cd881817b0fdc5835534164ff9cd Mon Sep 17 00:00:00 2001
From: Matthias Kretz
--6- Let […]
-
+(6.1) — mask be V::mask_type(true) for the overloads with no mask parameter; +
+(6.2) — R be span<const iter_value_t<I>> for the overloads with no template parameter R; +
+(6.3) — r be R(first, n) for the overloads with an n parameter and R(first, last) for the overloads with a last parameter.;
+
+(6.?) — T be typename V::value_type. +
-7- Mandates:
-(?.1) — ranges::iterator_t<R> satisfies +(?.1) — ranges::iterator_t<R> models indirectly_writable<ranges::range_value_t<R>>, and
@@ -511,7 +524,7 @@ template<simd-vec-type V, ranges::contiguous_range R, simd-integral (14.1) — `V::size() == I::size()` is `true`,
-(14.2) — ranges::iterator_t<R> satisfies +(14.2) — ranges::iterator_t<R> models indirectly_writable<ranges::range_value_t<R>>, and
@@ -519,6 +532,12 @@ template<simd-vec-type V, ranges::contiguous_range R, simd-integral explicitly-convertible-to<ranges::range_value_t<R>>.
+-17- Effects: For all i in the range [0, I::size()), if mask[i] +&& (indices[i] < ranges::size(out)) is true, evaluates +ranges::data(out)[indices[i]] = static_cast<ranges::range_value_t<R>>(v[i]). +