> Мда, ржавый memcpy работает с ржавыми типами, вот так сюрприз ...А какое применение имеет сферический ржавый memcpy в вакууме? oO Ну, например, им можно допустим взлететь в типа-неправильном-расте, скопировать RWDATA flash -> RAM, проинитить нечто типа BSS, получить типа-правильный-раст и работать как будто этого не было, все это самим растом? Без асма и прочих интринсиков? На сях так проканало и вот там самопальный memcpy пригодился, как типа часть типа-стартапкода, который внезапно тоже на си. А что, разве не прикольно запустить си из си? Это квинтэссенция системного программизма.
> А ты не давай и ничего не будет.
Это уже на совести caller'а. Откуда я заранее знаю что наобум взятый caller делать по факту будет? Я что, телепат? oO Изначально оно вообще делалось наполовину чтобы запустить прикольный но крупный и чужой алгоритм, где я ессно не могу оценить чего тот подаст на вход моей функции, я не настолько крут чтоб в уме просчитать все фокусы ридсоломона при произвольных входных данных. Поэтому я могу лишь поFUZZить сие, сделать тесткейсы, а если safety был не пустым звуком - вместо "return dest" написать "system_fault()". Который не даст просто пойти и просто работать как будто проблемы не было.
> Кажется. В built-in фунции для внутренней развертки компилятором, в ЯП без NULL
> (в safe) и возможностью компилятора доказать ненульность аргументов, как-то более логично
> вынести проверку туда, где она действительно будет нужна. Чай не жабаскрипт.
Так эта функция заявлена как unsafe, не? Ну и в конкретно моем случае я был лимитирован совместимостью с стандартным прототипом, дабы не патчить вон тот код. Это собственно единственный пойнт за дурной size_t.