Библиотека Generic классов - ошибки, описание, вопросы, особенности использования и предложения - страница 27
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы для чего коллекции то создаете, ради коллекций и автоматического удаления объектов?:))) Я вообще не говорил про ручное управление. Откуда вы такое взяли?)
STL изучите для начала и поймете о чем я вообще говорю
как правильно копировать, пример можете привести для этого шаблона?
я пользовался справкой для написания метода AddValue https://www.mql5.com/ru/docs/basis/types/classes
всю голову сломал, но я не вижу в MQL другого решения чем я написал в своем примере!
Вашу реализацию правильного хранения данных покажите
НО это все-равно неверное решение. Нормальное решение - использовать что-то типа STL. В вашем случае std::list.
Я думаю, что MQL5 не ограничивает в этом. Можно попробовать перевести исходники STL с той же VS на MQL
В вашем случае я это имел ввиду.
НО это все-равно неверное решение. Нормальное решение - использовать что-то типа STL. В вашем случае std::list.
Я думаю, что MQL5 не ограничивает в этом. Можно попробовать перевести исходники STL с той же VS на MQL
еще раз повторюсь: MQL это не С++,
и указатель на объект в MQL это по сути хендл, а указатель в С++ это адрес физической памяти
смысл заниматься портированием библиотек С++ один в один на MQL ?
еще раз повторюсь: MQL это не С++,
и указатель на объект в MQL это по сути хендл, а указатель в С++ это адрес физической памяти
смысл заниматься портированием библиотек С++ один в один на MQL ?
Чтобы нормально реализовывать паттерны проектирования, а не создавать потенциальные проблемы, используя дженерики.
Вы наверное удивитесь, но указатели для ОС тоже виртуальные. В физические их еще надо преобразовать, но это совсем другой уровень работы с указателями.
Портировать 1 в 1 не получится, а урезанные C++03 можно, думаю. Поддержка шаблонов и операторов имеется же.
1. Вы наверное удивитесь, но указатели для ОС тоже виртуальные. В физические их еще надо преобразовать, но это совсем другой уровень работы с указателями.
2. Портировать 1 в 1 не получится, а урезанные C++03 можно, думаю. Поддержка шаблонов и операторов имеется же.
1. не удивлюсь
2. ну вот и истина - что даже если Вы соберетесь и сделаете порт из С++, то он все равно будет вызывать вопросы, а почему же не так как в оригинале? - смысл?
Есть стандартная библиотека от MQL, используя ее есть хоть какая то гарантия, что будет обеспечена поддержка от разработчиков в будущем, я уже пару раз обжегся - использовал графические компоненты из статей несколько лет назад написанных, да юзать удобно, очень напоминает работу с компонентами Delphi, но когда начал более серьезные проекты пытаться реализовать - получил кучу вопросов и ни одного ответа от автора статьи
не помню, кто сказал из именитых программеров, но примерно так: код не должен быть красивым или читаемым, он должен выполнять свою задачу
как и наша с Вами беседа, если не ошибаюсь, Вы хотели хранить в списках структуру со своими данными, я показал свою реализацию, которую делал под такие же задачи - моя реализация работает? - она вызывает ошибки выполнения MQL-программы? - мне это интересно выяснить в ходе общения
Andrey Pogoreltsev:
C++03 можно, думаю. Поддержка шаблонов и операторов имеется же.
Ну да, успехов ))
код не должен быть красивым или читаемым, он должен выполнять свою задачу
Это верно только до тех пор, пока вы не захотите его доработать.
Уже как-то указывал на имеющийся баг в классе CLinkedList, но продублирую. Начальный и конечный узлы списка там замкнуты друг на друга: Next последнего узла указывает на первый узел, а Previous первого - на последний. В итоге стандартный цикл перебора превращается в бесконечный цикл:
В C# естественно подобной ерунды не наблюдается. Next последнего узла равен нулю, так же как и Previous начального.
Не знаю, является ли это некой "фичей", придуманной разработчиками (хотя пользы от неё не вижу), но в любом случае поведение библиотеки должно соответствовать оригиналу.
Уже как-то указывал на имеющийся баг в классе CLinkedList, но продублирую. Начальный и конечный узлы списка там замкнуты друг на друга: Next последнего узла указывает на первый узел, а Previous первого - на последний. В итоге стандартный цикл перебора превращается в бесконечный цикл:
В C# естественно подобной ерунды не наблюдается. Next последнего узла равен нулю, так же как и Previous начального.
Не знаю, является ли это некой "фичей", придуманной разработчиками (хотя пользы от неё не вижу), но в любом случае поведение библиотеки должно соответствовать оригиналу.
Что за хрень тут опять твориться? Удаляют вполне адекватные посты по теме LinkedList. Так и представляю, сидит где-нибудь в Европе модер-анонимус и удаляет, злобно хихикая, посты у ненавистных русских. Помойка какая-то, пропадает желание писать.