These "operate on object representation" optimizations do things like transform std::copy calls into std::memcpy calls when the arguments are (or unwrap to) pointers to appropriate element types. We want to enable similar optimizations for ranges algorithms, ideally generalized from pointers to all models of contiguous_iterator.
Some work has already been done on this, but I'm uncertain of the full scope of the work to be done so I'm not sure if it's all been completed. A good first task would be to audit the std algorithms (don't forget some live in <xutility>/<numeric>/<memory>, do forget the parallel versions in <execution> since I suspect nothing there will apply) to develop a full list of action items necessary to complete this task.
These "operate on object representation" optimizations do things like transform
std::copycalls intostd::memcpycalls when the arguments are (or unwrap to) pointers to appropriate element types. We want to enable similar optimizations forrangesalgorithms, ideally generalized from pointers to all models ofcontiguous_iterator.Some work has already been done on this, but I'm uncertain of the full scope of the work to be done so I'm not sure if it's all been completed. A good first task would be to audit the
stdalgorithms (don't forget some live in<xutility>/<numeric>/<memory>, do forget the parallel versions in<execution>since I suspect nothing there will apply) to develop a full list of action items necessary to complete this task.