Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5 - страница 22
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Будет оператор using, который решит проблему ограничения функционала (сделает поведение компилятора "как раньше")
В следующей бете (build > 5223) будет доступен оператор using (пока исключительно для использования в объектах).
Также, 'operator=' будет неявно генерироваться для всех типов объектов, если он возможен: нет константных полей и нет полей и родителей, в которых 'operator=' недоступен
Такая неявная генерация оператора сломает существующие коды, в которых использовался operator= предка, пример:
с билда >5223, компиляция такого кода завершится с ошибками:
Обойти такую ошибку можно двумя способами:
(A&)b=100;Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Ilyas, 2025.08.19 15:30
Это что за название переменной?!
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
MetaQuotes, 2025.07.31 14:50
Некоторое количество билдов в журнал будет выводиться предупреждение, если по параметрам доступен более подходящий скрытый метод.
Почему сейчас (b5222) нет предупреждения и вызывается базовый оператор?
В b5223+ выполнение такого кода будет таким же, как в b5222?Также, 'operator=' будет неявно генерироваться для всех типов объектов
Почему не copy constructor? Вы ведь сами о нем упоминали, а теперь генерируете вместо него 'operator='
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Ошибки, баги, вопросы
Ilyas, 2024.03.11 15:50
Потому, что C++ генерирует конструктор копирования по умолчанию, а MQL5 нет (пока/до сих пор).
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Ilyas, 2025.08.19 15:30
(A&)b=100;Для компилятора имеет значение, какая запись используется?
Почему не copy constructor?
Или copy constructor уже генерируется? Я запутался.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Ilyas, 2025.08.04 14:08
Из главного, не вошло создание неявного конструктора копий для объектов пользователя (для встроенных объектов добавляется, например для MqlTick).
Это ведь его работа (неявного конструктора копирования)? 'operator=' не должен бы справиться с константным полем, если я не ошибаюсь.
Forum on trading, automated trading systems and testing trading strategies
Did Structs Change with the last MT5 Update?
Vladislav Boyko, 2025.08.19 22:29
Даже добавление константного поля не приводит к предупреждению:
Почему не copy constructor? Вы ведь сами о нем упоминали, а теперь генерируете вместо него 'operator='
Потому что это присваивание. Переменная b уже создана.
Почему сейчас (b5222) нет предупреждения и вызывается базовый оператор?
В b5223+ выполнение такого кода будет таким же, как в b5222?Не думаю. Должен вызываться B::operator=
Не думаю. Должен вызываться B::operator=
Если вы правы, то тогда нельзя будет обнаружить проблему, т.к. нет (сейчас) никаких предупреждений компилятора.