ArrayCopy() глючит на пересекающихся участках - страница 2

 
Mathemat писал (а):

В данном случае речь идет о банальном копировании элементов массива :)

Нет, bstone, это не банальное копирование - и Вы это точно должны понимать: сам массив оказывается и источником для копирования, и объектом модификации. Какое ж это копирование?! При таком "копировании" можно было бы не делать детей, а превращаться в них самим...

Не понимаю, откуда такая мощная оппозиция? :) Речь ведь идет о маленьком глюке в функции ArrayCopy(). Я всего лишь просил обратить на него внимание и исправить. Сделать это проще простого - достаточно всего лишь проверить условие пересечения диапазонов в случае с одним и тем же массивом в качестве источника и приемника данных и копировать данные в соответствущем "безопасном" для данных направлении (в прямом или обратном порядке).

Язык MQL4 ориентирован явно на специфичную аудиторию - на трейдеров, желающим тем или иным образом механизировать торговлю. Соответственно и акцент в строгости описания языка смещен больше в сторону трейдерских задач, а описание языка не может быть таким же строгим, как это специфицировано в ANSI-стандарте С++.


Именно в большом количестве трейдерских задач возникают подзадачи накопления и обработки данных в разной форме, в том числе и задачи вставки/удаления элементов внутри массива. Например при управлении состоянием ордеров, когда ордера исполняются и уходят из очереди обработки. Ну и много других простых трейдерских алгоритмов могут нуждаться в такой возможности. И вопрос я этот, собственно, поднял не потому, что хотел тут померяться силами с кем-нибудь в программистских способностях, а потому что увидел возможность немного улучшить MQL именно для тех, кто не занимается разработкой внешних DLL-к для своих МТС, а пишет на MQL.