Ошибки, баги, вопросы - страница 3441

 
Aleksey Vyazmikin #:

Вроде как ограничение  с double уже сняли.

Сняли далеко не сразу, а потом два раза на одни и те же грабли наступать - не располагаю такой возможностью

 
fxsaber #:

Это еще неисправленный баг.

Можно подумать, что его собираются исправить :)
 
fxsaber #
:

Это еще неисправленный баг.

Баг в MQL - это не любое сомнительное поведение, а только если:

1) В Документации указано по-другому

2) Есть пример, который вступает в неразрешимое противоречие с исходным

3) В C++ по-другому, а в Документации пробел

А в ином случае - это Ваше личное мнение - тем более никакого противоречивого примера я там о Вас не видел (пункт 2), при том, что указанное ниже поведение соответствует и логике и С++ (пункт 3)

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 4040: Улучшения и исправления

A100, 2023.12.12 12:07

Вы не в теме просто - вот и чудятся везде баги, а их здесь нет (обобщил):

template<typename T>
void f( const T& t ) { Print( t ); }
void OnStart()
{
    int i = 1;
    f(  i );                  //нормально
    f(      1 );              //нормально
    string text = "ABCDEF";
    f(     text );            //нормально
    f(            "ABCDEF" ); //нормально
}

Это Вам любой грамотный пользователь подтвердит

 
A100 #:

Совершенно верно, но принципиальная ошибка в данном случае именно в sizeof

sizeof должен быть такого типа, чтобы возвращать максимально возможный размер в системе. Для x64 разрядных систем он должен выглядеть так:

Т.е. пользователь не должен думать, о корректности размера - произведение на sizeof всегда должно возвращать корректное значение.

Определим корректный sizeof:

Результат: 4294967292

как и ожидалось

А что изменилось по сравнению с первоначальным примером? - просто добавили строку (*)

Мне сложно предствить размер одного экземпляра объека более  2 147 483 647 байт. Возможно скоро наступят такие времена, но сейчас сомневаюсь.
Впрочем согласен, логичнее для  sizeof() использовать было uint тип, а не int(ведь размер не может быть отрицательным). Но испльзовать ulong (как в вашем предыдущем примере), это явный перебор.

 
Nikolai Semko #:

Мне сложно предствить размер одного экземпляра объека более  2 147 483 647 байт. Возможно скоро наступят такие времена, но сейчас сомневаюсь.

Вот пользователю уже сейчас (!) нужно

Nikolai Semko #:

Впрочем согласен, логичнее для  sizeof() использовать было uint тип, а не int. Но использовать ulong (как в вашем предыдущем примере), это явный перебор.

Это не я придумал - вот цитата с сайта Microsoft: "Результатом sizeof оператора является тип size_t" - а там далеко не дураки сидят

 
A100 #:

Вот пользователю уже сейчас (!) нужно

Это не я придумал - вот цитата с сайта Microsoft: "Результатом sizeof оператора является тип size_t" - а там далеко не дураки сидят

А, если для OpenCL, тогда согласен. 
 
A100 #:

Баг в MQL - это

MQ не прокомментировали.

 
Nikolai Semko #:

Мне сложно представить размер одного экземпляра объекта более  2 147 483 647 байт.

Кстати и с чуть меньшим размером не факт, что все получится:

void f() { static int i[]; }
char i[INT_MAX-240];
void OnStart() {}

Результат: fatal compiler error: code generation failed

 
Установлен интервал для тестирования: от 2023-12-26 до 2023-12-27.
В журнале отображается ошибка: set mode to math calculations or adjust testing dates.
 
zaaz #:
Установлен интервал для тестирования: от 2023-12-26 до 2023-12-27.
В журнале отображается ошибка: set mode to math calculations or adjust testing dates.

Текущий день не тестируется, а вы хотите и завтрашний день протестировать.