On Sunday, 10 June 2018 at 12:49:31 UTC, Mike Franklin wrote:
D utilizes from the C library with D implementations. There
are many reasons to do this, one of which is to leverage
information available at compile-time and in D's type system
(type sizes, alignment, etc...) in order to optimize the
implementation of these functions, and allow them to be used
from @safe code.
So keep in mind that memcpy is really a magical intrinsic anyway
and optimzers frequently don't actually call a function, but
rather see the size and replace the instructions inline (like it
might replace it with just a couple movs instead of something
fancy).
And D already has it built in as well for @safe etc:
arr1[] = arr2[]; // the compiler makes this memcpy, the optimzer
can further do its magic
so be sure to check against that too.