Ошибки, баги, вопросы - страница 2328
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вы невнимательны
или вы. давайте сразу по делу
Я предлагал простейший вариант, который может быть реализован уже завтра (а не через 10 лет) и была бы внешняя схожесть с C++ (а иначе зачем вообще что-то менять). Тем более что если operator*() не стали и не будут делать (была об этом информация на форуме), непонятно почему operator->() вдруг реализовали бы (они одного порядка)
В таком виде он не нужен ни завтра ни через 10 лет. И внешняя схожесть не нужна, нужны возможности.
Чтоб хотя бы частично перенести STL из C++. А там дело не упирается только в operator->, там ещё много чего нужно.
operator-> был бы первым шагом на пути к умным указателям.
На самом деле с неявным кастом в том виде в котором он сейчас все не очень хорошо.
Видно, что dynamic cast включен в неявный каст
НО
во-первых непонятно зачем он включен если в языке dynamic cast явно присутствует
во-вторых он включен очень плохо, потому что ошибку dynamic cast в случае функции можно контролировать (на выходе плохой указатель), а неявный каст нельзя! потому что он бросает неконтролируемое исключение
2018.11.23 20:31:47.348 test (AUDNZD,M5) incorrect casting of pointers in 'test.mq5' (17,11)
толку от него такого ровно ноль.
надо или давать невалидный указатель, как функция, или исключить dynamic cast из неявного каста и давать ошибку компиляции.
Да, при наличии этой проблемы, работа с ООП плохо контролируема и ненадёжна. Где-то поменял тип в одном месте программы, а потом рванёт неизвестно где. В данных примерах ещё можно как-то выкрутиться с помощью костылей, т.к. тут простое присвоение указателей, и всё перед глазами. А в общем случае, когда указатель передаётся в какую-то функцию и динамически кастится неизвестно к чему, то уже никак не проконтролируешь.
Точка - это универсальный оператор в MQL.
Это как посмотреть. Можно сказать что универсальный: работает и с объектами и с указателями.
А можно сказать что . работает только с объектами, а с указателями работает лишь постольку поскольку указатель неявно приводится к объекту, т.е. в случае
запись
эквивалентна не
a
есть такая структура
есть есть переменная OrdersInfo order, при попытке записать ее в файл
компилятор выдает: 'order' - structures containing objects are not allowed
в чем может быть проблема?
есть такая структура
есть есть переменная OrdersInfo order, при попытке записать ее в файл
компилятор выдает: 'order' - structures containing objects are not allowed
в чем может быть проблема?
Тут
https://www.mql5.com/ru/docs/files/filewritestruct
перечислены ограничения.
МТ4 на ВПС трафик отрицательный, пошло скачивание истории счетчик пошёл увеличиваться ...