You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The end of the resulting range beginning at <code>result</code>.
816
+
</ins>
817
+
</cxx-returns>
818
+
819
+
<cxx-requires>
820
+
<ins>
821
+
Neither <code>unary_op</code> nor <code>binary_op</code> shall invalidate iterators or subranges, or modify elements in the
822
+
ranges <code>[first,last)</code> or <code>[result,result + (last - first))</code>.
823
+
</ins>
824
+
</cxx-requires>
825
+
826
+
<cxx-complexity>
827
+
<ins>
828
+
O(<code>last - first</code>) applications each of <code>unary_op</code> and <code>binary_op</code>.
829
+
</ins>
830
+
</cxx-complexity>
831
+
832
+
<cxx-notes>
833
+
<ins>
834
+
The difference between <code>transform_exclusive_scan</code> and <code>transform_inclusive_scan</code> is that <code>transform_exclusive_scan</code>
835
+
excludes the ith input element from the ith sum. If <code>binary_op</code> is not mathematically associative, the behavior of
836
+
<code>transform_exclusive_scan</code> may be non-deterministic. <code>transform_exclusive_scan</code> does not apply <code>unary_op</code> to <code>init</code>.
template<class InputIterator, class OutputIterator,
849
+
class UnaryOperation,
850
+
class BinaryOperation>
851
+
OutputIterator
852
+
transform_inclusive_scan(InputIterator first, InputIterator last,
853
+
OutputIterator result,
854
+
UnaryOperation unary_op,
855
+
BinaryOperation binary_op);
856
+
857
+
template<class InputIterator, class OutputIterator,
858
+
class UnaryOperation,
859
+
class BinaryOperation, class T>
860
+
OutputIterator
861
+
transform_inclusive_scan(InputIterator first, InputIterator last,
862
+
OutputIterator result,
863
+
UnaryOperation unary_op,
864
+
BinaryOperation binary_op, T init);
865
+
</ins>
866
+
</cxx-signature>
867
+
868
+
<cxx-effects>
869
+
<ins>
870
+
Assigns through each iterator <code>i</code> in <code>[result,result + (last - first))</code> the value of
871
+
<code><em>GENERALIZED_NONCOMMUTATIVE_SUM</em>(binary_op, unary_op(*first), ..., unary_op(*(first + (i - result))))</code> or
872
+
<code><em>GENERALIZED_NONCOMMUTATIVE_SUM</em>(binary_op, init, unary_op(*first), ..., unary_op(*(first + (i - result))))</code>
873
+
if <code>init</code> is provided.
874
+
</ins>
875
+
</cxx-effects>
876
+
877
+
<cxx-returns>
878
+
<ins>
879
+
The end of the resulting range beginning at <code>result</code>.
880
+
</ins>
881
+
</cxx-returns>
882
+
883
+
<cxx-requires>
884
+
<ins>
885
+
Neither <code>unary_op</code> nor <code>binary_op</code> shall invalidate iterators or subranges, or modify elements in the ranges <code>[first,last)</code>
886
+
or <code>[result,result + (last - first))</code>.
887
+
</ins>
888
+
</cxx-requires>
889
+
890
+
<cxx-complexity>
891
+
<ins>
892
+
O(<code>last - first</code>) applications each of <code>unary_op</code> and <code>binary_op</code>.
893
+
</ins>
894
+
</cxx-complexity>
895
+
896
+
<cxx-notes>
897
+
<ins>
898
+
The difference between <code>transform_exclusive_scan</code> and <code>transform_inclusive_scan</code> is that <code>transform_inclusive_scan</code>
899
+
includes the ith input element from the ith sum. If <code>binary_op</code> is not mathematically associative, the behavior of
900
+
<code>transform_inclusive_scan</code> may be non-deterministic. <code>transform_inclusive_scan</code> does not apply <code>unary_op</code> to <code>init</code>.
@@ -83,6 +85,15 @@ <h1>Execution policy type trait</h1>
83
85
<p><code>is_execution_policy</code> can be used to detect parallel execution policies for the purpose of excluding function signatures from otherwise ambiguous overload resolution participation.</p>
84
86
85
87
<p><code>is_execution_policy<T></code> shall be a UnaryTypeTrait with a BaseCharacteristic of <code>true_type</code> if <code>T</code> is the type of a standard or implementation-defined execution policy, otherwise <code>false_type</code>.
88
+
89
+
<pre>
90
+
</pre>
91
+
92
+
<ins>
93
+
<cxx-note>
94
+
This provision reserves the privilege of creating non-standard execution policies to the library implementation.
95
+
</cxx-note>
96
+
</ins>
86
97
87
98
<p>The behavior of a program that adds specializations for <code>is_execution_policy</code> is undefined.</p>
0 commit comments