#pragma once namespace memory { template void move(T * dst, const T * src, uint32_t n) { if (dst < src) { while (n > 0) { *dst++ = *src++; n--; } } else { while (n > 0) { n--; dst[n] = src[n]; } } } template inline void copy(T * dst, const T * src, uint32_t n) { while (n > 0) { *dst++ = *src++; n--; } } }