The STL algorithm 'transform' is already available with just one input. It musrt be available with two inputs. One of the difficulty is that there willbe many more combinations of iterators tags:
( random * random => random )
( random * bidirect => random )
...etc ...
Each of this situation yield specific optimizations.
A big taks will be to add three-fold 'chop' operations for each range type. At the moment, any range type has basically two 'chop' operations:
- One with just returns a single input slice. It is used for 'std::accumulate'.
- Another one which returns an input slice of elements, and an output slice too: This is used for std::transform (With one input range).
Now, each range type will have to 'chop' three data ranges: Two inputs and one output.