В b5223+ выполнение такого кода будет таким же, как в b5222?
b5226, код стал выполняться иначе. Отсутствие предупреждений - это серьезная засада. Как убедиться, что теперь написанные коды работают правильно - не знаю.
struct A
{
int _;
// Компиляция зависит от наличия/отсутствия этого оператора.voidoperator=( short x )
{
Print(__FUNCSIG__);
}
};
struct B : A
{
// using A::operator=;voidoperator=( string x )
{
Print(__FUNCSIG__);
}
};
voidOnStart()
{
B b;
b=100; // cannot convert parameter 'const int' to 'const B&'
}
Ожидался warning "implicit conversion from 'number' to 'string'".
Я не гений программирования, и планка вхождения в ООП для меня и раньше была высокой. С несколькими последними ужесточениями она стала ещё выше. Думаю, я не одинок.
Edgar Akhmadeev #: Я не гений программирования, и планка вхождения в ООП для меня и раньше была высокой. С несколькими последними ужесточениями она стала ещё выше. Думаю, я не одинок.
Все наоборот, стало лучше и четче. Увеличение проверок приводит к уменьшению ошибок и разных вариантов неопределенного поведения.
Просто парочка человек любит заниматься самострелом и выискивает способы самоубиться кодом. Что, впрочем, полезно для всех.
где массив указателей на блоки кода индексируется по номеру случая во время выполнения. Большое количество или сложные переключатели не получат такой оптимизации таблицы переходов и останутся в виде нескольких if-else
struct A
{
int Tmp;
};
struct B : public A
{
using A::operator=; // Во всей цепочке наследования нужно прописывать подобную строку.
};
struct C : public B
{
using B::operator=; // Во всей цепочке наследования нужно прописывать подобную строку.
};
void OnStart()
{
A a;
C c;
c = a; // Просто обновить A-поля в C-структуре.
}
Если вы правы, то тогда нельзя будет обнаружить проблему, т.к. нет (сейчас) никаких предупреждений компилятора.
Понимаю. Посмотрим, может, @Ilyas ответит.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
fxsaber, 2025.08.19 16:02
В b5223+ выполнение такого кода будет таким же, как в b5222?b5226, код стал выполняться иначе. Отсутствие предупреждений - это серьезная засада. Как убедиться, что теперь написанные коды работают правильно - не знаю.
Ожидался warning "implicit conversion from 'number' to 'string'".
Строка для поиска: Oshibka 143.
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Ilyas, 2025.08.19 15:30
использовать using
Когда using можно будет использовать в кодобазе?
Я не гений программирования, и планка вхождения в ООП для меня и раньше была высокой. С несколькими последними ужесточениями она стала ещё выше. Думаю, я не одинок.
Все наоборот, стало лучше и четче. Увеличение проверок приводит к уменьшению ошибок и разных вариантов неопределенного поведения.
Просто парочка человек любит заниматься самострелом и выискивает способы самоубиться кодом. Что, впрочем, полезно для всех.
Просто парочка человек любит заниматься самострелом и выискивает способы самоубиться кодом. Что, впрочем, полезно для всех.
Напоминаю, что Вы получаете полностью бесплатное (для Вас) бета-тестирование с лаконичными технически-воспроизводимыми баг-репортами.
Ну и на тему скорости, вот пример (актуален в b5226), когда показано ускорение работы компилятора на 40% за счет "выискивания".
b5219, получилось привести проекты к рабочему состоянию. Спасибо.
b5226 - полный швах снова. Просто начать использовать using не выходит - требуется проверка.
Напоминаю, что Вы получаете полностью бесплатное (для Вас) бета-тестирование с лаконичными технически-воспроизводимыми баг-репортами.
Ну и на тему скорости, вот пример (актуален в b5226), когда показано ускорение работы компилятора на 40% за счет "выискивания".
Поэтому и написал: это полезно для всех.
Спасибо всем участникам, мы стараемся сделать наши продукты лучше.