Ошибки, баги, вопросы - страница 2755
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Ошибка компилятора. В старых билдах работает нормально.
У меня есть такой простой эксперт (см. скриншот).
На график наложены объекты Chart.
До вчерашнего обновления терминала на чартах показывались торговые уровни, но сейчас исчезли.
Чарты создаю как указано в примере из мануала. Там нет свойств для отображения торговых уровней (такое свойство существует только для основных графиков).
Помогите, пожалуйста.
Скриншоты торговой платформы MetaTrader
GBPUSD, M5, 2020.05.25
Forex Club International Limited, MetaTrader 5, Real
Привет. Помогите пожалуйста разобраться, что написано.
mqlrate rt [2] ;
Правильно ли я понимаю, что это массив из двух структур которые автоматически получил одинаковые данные структуры?
Просто дальше нет присвоения массиву данных, а потом из массива используются сразу данные.Привет. Помогите пожалуйста разобраться, что написано.
mqlrate rt [2] ;
Правильно ли я понимаю, что это массив из двух структур которые автоматически получили одинаковые данные?
Запись на MQL5:
означает: объявлен статический массив из двух структур MqlRates . После объявления в этих структурах может храниться белиберда, поэтому эти структуры необходимо явно заполнить данными.
Запись на MQL5:
означает: объявлен статический массив из двух структур MqlRates. После объявления в этих структурах может храниться белиберда, поэтому эти структуры необходимо явно заполнить данными.
Ошибка компилятора. В старых билдах работает нормально.
Да есть такое, еще 2020.03.25 сообщал, уже день в день как 2 месяца...
(не исправлено MT5(build 2390)) (new) Compile Error, при использовании модификатора доступа по умолчанию при наследовании в шаблонном классе, когда шаблонный параметр выступает базовым классом.
Ещё один баг:
Ругается на C::operator=, хотя здесь выполняется D::operator=. Чтобы обойти баг, приходится делать перегрузку оператора для всех базовых классов в иерархии.
p.s. Вообще некорректное поведения оператора присваивания разработчики уже давно обещали пофиксить, но воз и ныне там. Это безобразие. Например, следующий код компилируется без ошибок, хотя там присваивается чёрти что:
Ещё один баг:
1) Ругается на C::operator=, хотя здесь выполняется D::operator=. Чтобы обойти баг, приходится делать перегрузку оператора для всех базовых классов в иерархии.
2) Вообще некорректное поведения оператора присваивания разработчики уже давно обещали пофиксить, но воз и ныне там. Это безобразие. Например, следующий код компилируется без ошибок, хотя там присваивается чёрти что:
1) Скорее всего не баг, а закономерное поведение учитывая особенности MQL, а именно:
В MQL методи и поля базового класса "напрямую доступны" из классов наследников.
По сути поведение в MQL при наследовании аналогично тому, что в С++ применить using declaration для каждого базового поля и метода.
C++ online: https://onlinegdb.com/rJkckvFsU
Таким образом в операции d = c;
при поиске подходящей функции так же участвуют все функции operator= из базовых классов.
В результате оптимальная сигнатура для вызова перегруженной функции является дефолтный и удаленный void operator=(const C&).
1) Скорее всего не баг, а закономерное поведение учитывая особенности MQL, а именно:
В MQL методи и поля базового класса "напрямую доступны" из классов наследников.
По сути поведение в MQL при наследовании аналогично тому, что в С++ применить using declaration для каждого базового поля и метода.
C++ online: https://onlinegdb.com/rJkckvFsU
Таким образом в операции d = c;
при поиске подходящей функции так же участвуют все функции operator= из базовых классов.
В результате оптимальная сигнатура для вызова перегруженной функции является дефолтный и удаленный void operator=(const C&).
Необязательно искать сакральный смысл в очевидной недоработке языка. Вот здесь я уже поднимал данную проблему, и Ильяс заверил, что это будет исправлено. Но уже почти 10 месяцев пролетело... (
По сути поведение в MQL при наследовании аналогично тому, что в С++ применить using declaration
Ну да, а если бы в MQL допустим было 2 x 2 = 5, то можно было сказать, что это аналогично тому, как если в C++ к результату добавить операцию инкремента )
Необязательно искать сакральный смысл в очевидной недоработке языка.
Вам объяснили как и почему так работает, если для вас это сложно - к счастью ни чем не могу помочь...
Это не сакральный смысл, а обычный подход с целью снижения входного уровня пользователей, что бы они могли обращаться к полям и методам базового класса без использования "this.", а так же в случаях overloading-a функций базового класса.