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

 
Sergey Dzyublik:

Вы хоть дебагер запустите, прежде чем писать нелепые утверждения.
На втором цикле i == 1 и j == 1, а на третьем и так далее оба на единицу больше.

вы хоть школу закончите, прежде чем незнакомых людей в чем то обвинять

в нормах русского языка знак вопроса в конце предложения, ну никак не означает утверждение!

 
Igor Makanu:

вы хоть школу закончите, прежде чем незнакомых людей в чем то обвинять
в нормах русского языка знак вопроса в конце предложения, ну никак не означает утверждение!

Извините, что ранил ваши чувства достоинства... 
Надеюсь, что вам все-таки удасться разобраться как же работает коварный модификатор const в MQL.

Ошибки, баги, вопросы

Igor Makanu, 2020.03.21 10:26

в прошлом году работало не так - специально тестировал модификаторы const
и кажется @Ilyas объяснял как происходит запуск MQL-программы, сначала инициализируются все const и static вне зависимости от того где они описаны, затем уже конструкторы классов будут вызваны
ладно, с этой инициализацией static / const - ее можно еще правильно распределить, но вот то, что модификатор const не гарантирует, что компилятор это проверит - очень неожиданно - мой второй пример


 
Sergey Dzyublik:

Извините, что ранил ваши чувства достоинства... 
Надеюсь, что вам все-таки удасться разобраться как же работает коварный модификатор const в MQL.

извиняю, читайте контекст, включая разделители

у нас с вами разные задачи нахождения на форуме, вы форумный всезнайка, который поднимает уровень своего скила отвечая на вопросы форумнчан, я же напротив не боюсь задать вопрос на форуме и не боюсь показать свою неосведомленность в этом.... зачем задавать вопрос если знаешь ответ?

хотя, возможно, вы представитель охранных структур, в очередной раз пытаетесь найти мои сообщения в истории форума, чтобы прикрепить их в текущее обсуждение... читайте первую строку этого сообщения!

 

У меня, при отладке и при самой работе индикатора, в журнале, внезапно пишет Stack overflow. При самой отладке вылетает сообщение "Возникла критическая ошибка, отладка остановлена". Вот моя аналогичная тема: https://www.mql5.com/ru/forum/338301. Но при компиляции компилятор не ругается и всё проходит нормально. При отладке невозможно установить в какой момент программа вылетает.

Возможно, всё дело в компиляторе? Какой компилятор используется я особо не вникал, но в настройках у меня следующая картина: 

Компиляторы

У меня установлен VS, поэтому, в настройках эта ссылка. Значит и компилятор соответствующий?... Но какой компилятор был, когда VS у меня не было, я честно говоря, не вникал. Может быть, следует попробовать вернуться к тому компилятору и попробовать скомпилировать проект с помощью него?

Ошибка при дебаге (Возникла критическая ошибка, отладка остановлена)
Ошибка при дебаге (Возникла критическая ошибка, отладка остановлена)
  • 2020.04.23
  • www.mql5.com
Решил поэкспериментировать со стандартным UI компонентом CAppDialog...
 
fxsaber:

Совсем недавно обнаружил символ, на котором Digits было неверно задано. Попросил брокера исправить. Он это сделал сходу. Не смотрел, менялось ли значение переменой _Digits и Digits(). Но просто факт, что символ может поменять свои значения на ходу.

Значение _Digits не должно было поменяться хотя бы потому, что оно помещается в read-only блок памяти

 
Mihail Matkovskij:

У меня, при отладке и при самой работе индикатора, в журнале, внезапно пишет Stack overflow. При самой отладке вылетает сообщение "Возникла критическая ошибка, отладка остановлена". Вот моя аналогичная тема: https://www.mql5.com/ru/forum/338301. Но при компиляции компилятор не ругается и всё проходит нормально. При отладке невозможно установить в какой момент программа вылетает.

Возможно, всё дело в компиляторе? Какой компилятор используется я особо не вникал, но в настройках у меня следующая картина: 

У меня установлен VS, поэтому, в настройках эта ссылка. Значит и компилятор соответствующий?... Но какой компилятор был, когда VS у меня не было, я честно говоря, не вникал. Может быть, следует попробовать вернуться к тому компилятору и попробовать скомпилировать проект с помощью него?

Как можно сменить компилятор?

 
A100:

Значение _Digits не должно было поменяться хотя бы потому, что оно помещается в read-only блок памяти

Получается тогда, что это значение может обманывать.

 
Andrey Barinov:

Всегда было можно (F3). Работают.

по F3 действительно работают, а в меню их нет.

 
fxsaber:

Получается тогда, что это значение может обманывать.

Поэтому для строгости нужно использовать Digits() вместо _Digits. Тогда формально и никакого логического противоречия не возникает - Digits() не связана модификатором const.

Насколько я понял _Digits нужна была для совместимости с MT4 - не более того

 
Igor Makanu:

выполнение этого скрипта должно вернуть значение sum = 0 ?

или этот скрипт вообще должен выдать ошибку компиляции?

Функция f выполняется на каждой итерации, поэтому не 0.   Я понял, с чем было связано ваше непонимание.  В C# спецификатор const применяется только для константных выражений, вычисляемых на этапе компиляции.  В С++ для этого есть аналог:  constexpr.  А в MQL его нет.
Причина обращения: