
24 Apr
2010
24 Apr
'10
4:29 p.m.
AMDG strasser@uni-bremen.de wrote:
Zitat von Thorsten Ottosen <nesotto@cs.aau.dk>:
Hi John & co,
IIRC, std::copy() cannot use memcpy(), since the memory is allowed to overlap. Therefore it can only use memmove().
std::copy() doesn't allow overlapping ranges. -> std::copy_backward()
Both copy and copy_backwards allow some overlapping ranges. int array[10] = {}; std::copy(&array[0], &array[7], &array[1]); // illegal std::copy(&array[1], &array[8], &array[0]); // okay std::copy_backwards(&array[0], &array[7], &array[8]); // okay std::copy_backwards(&array[1], &array[8], &array[7]); // illegal In Christ, Steven Watanabe