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

 

2310
Странное поведение.
Если установить массив, начиная с четвёртого параметра, или пятым, шестым и т.д.

void Func(int arg1, int arg2, int arg3=0, double & array[])
{
 
}

то компилятор выдаёт ошибку

'array' - missing default value for parameter

Переставляю массив первым, или вторым, или третьим параметром, ошибок нет.

void Func(int arg1, int arg2, double & array[] int arg3=0)
{
 
}


Второе странное поведение.
В редакторе по F5, после компиляции частенько срабатывает запуск скрипта на выполнение.

 
Roman:

2310
Странное поведение.
Если установить массив, начиная с четвёртого параметра, или пятым, шестым и т.д.

то компилятор выдаёт ошибку

Переставляю массив первым, или вторым, или третьим параметром, ошибок нет.


Второе странное поведение.
В редакторе по F5, после компиляции частенько срабатывает запуск программы на выполнение.

Если есть значение по умолчанию у одного из параметров, то все последующие параметры также должны иметь значения по умолчанию.

void Func(int arg1, int arg2, int arg3=0, double & array[]  )
{
 
}

Это поведение изначально было.

И дело тут не в массиве, а в значении по умолчанию, которое есть у последнего аргумента. Все последующие обязаны его иметь так же:

void Func(int arg1, int arg2, double & array[] int arg3=0)
{
 
}
 
Artyom Trishkin:

Если есть значение по умолчанию у одного из параметров, то все последующие параметры также должны иметь значения по умолчанию.

Это поведение изначально было.

И дело тут не в массиве, а в значении по умолчанию, которое есть у последнего аргумента. Все последующие обязаны его иметь так же:

Благодарю за пояснение, но поведение странное ))

 
Artyom Trishkin:

Значит, вашего рейтинга не достаточно ещё для блогов.

А где про это почитать? Какой рейтинг нужен? Что нужено делать?
 
Roman:

Благодарю за пояснение, но поведение странное ))

Странно слышать от вас такие вопросы. В справочнике чётко написано


Документация по MQL5: Основы языка / Функции
Документация по MQL5: Основы языка / Функции
  • www.mql5.com
Всякая задача может быть разбита на подзадачи, каждую из которых можно либо непосредственно представить в виде кода, либо разбить на еще более мелкие подзадачи. Данный метод называется определения функции. Заголовок функции включает в себя описание типа возвращаемого значения, имени (идентификатора) и формальных параметров.  Количество...
 
Petros Shatakhtsyan:

Если на тестере тоже работает, это хорошо. Проверю.

нет, не работает.

серверное время, кстати, не останавливается в субботу. тут обратное: в терминале серверное время обновляется с приходом новой котировки. например, у вас в обзоре рынка открыт только один символ (не только в тестере, но и в реальности). а тиков нет секунд пять - все это время таймер серверного времени не сдвинется. к субботе это так относится: на сервере время идёт, но терминал об этом не знает, т.к. тиков нет. тестер просто пропустит этот период.

 
Petros Shatakhtsyan:

Но вот я не знаю как определить день субботний или нет. Ведь после закрытия рынка, серверное время останавливается.

С какой целью? Запустить авто-оптимизацию на выходных? Тогда подойдет установка таймера из ОнТик на отдалении в несколько минут. Если сработает, значит тики прекратились и можно оптимизировать.

Если для других целей, сформулируйте их.

 
Alexey Viktorov:

Странно слышать от вас такие вопросы. В справочнике чётко написано


Благодарю Алексей, как раз в справочник я и не заглядывал по этому вопросу ))
Так как умолчательные параметры редко использую, а тут понадобилось, вот и нарвался.
Всегда почему то думал, что параметры не имеют приоритет расстановки, ан нет, имеют.

 

Подскажите кто знает, как задать размер для матрицы, из переданных аргументов.
Что то на подобие этого

void MxResize(int row, int col)
{
   int A[][];      

   ArrayResizeRow(A, row);    
   ArrayResizeCol(A, col);      
}

запись ниже не проходит, - invalid index value

void MxResize(int row=1, int col=1)
{
   int A[row][col];    
      
}
 
Roman:

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

https://www.mql5.com/ru/forum/328008/page2#comment_14166682

Размерность многомерных динамических массивов через ArrayResize
Размерность многомерных динамических массивов через ArrayResize
  • 2019.12.09
  • www.mql5.com
Добрый день. Такой вопрос волнует: как использовать ArrayResize для двумерных динамических массивов...
Причина обращения: