Особенности языка mql5, тонкости и приёмы работы - страница 193

 
fxsaber:

Абсолютно все правила искусственные.

Согласен. Вопрос в уровне искусства :)

 

Подскажите плиз - при использовании в эксперте пользовательского индикатора, у которого много (допустим 50) параметров, какие кто использует способы управления параметрами индикатора удобные? (кроме прямого переноса параметров индюка в пар-ры эксперта, тут всё ясно)

в каком то чужом коде встретил использование типа загрузки *.set файла при вызове iCustom, но сходу поиском ничего такого не нашёл и по тесту как будто бы не работает. 

Может кто в курсе и есть какие то недокументированные хитрости? 

 

Последняя релизная сборка 2650. Это нормально, что такой скрипт не компилируется:

struct A_INFO
{
  int a;
};

bool operator<(const A_INFO &First,const A_INFO &Second) //operator< has invalid parameters count
{
  return First.a<Second.a;
}

void OnStart()
{
}

А вот так нормально:

struct A_INFO
{
  int a;
};

bool operator<(const A_INFO &First)
{
  return true;
}

void OnStart()
{
}

Он ждёт, что я буду сравнивать 1 значение? Или почему нельзя делать оператор не-членом структуры?

 
И второй вопрос вдогонку. Почему нельзя на массив таких структур натравить ArraySort? Что мешает сравнивать их через оператор < , который определён?
 
traveller00:

Он ждёт, что я буду сравнивать 1 значение?

Второе значение (что слева от оператора) - this.

 
fxsaber:

Второе значение (что слева от оператора) - this.

Почему this, если я сделал оператор не членом структуры, а глобально? Или я не могу делать глобально? С++ ведёт себя по-другому.

 
traveller00:

Почему this, если я сделал оператор не членом структуры, а глобально? Или я не могу делать глобально? С++ ведёт себя по-другому.

Про такие операторы ничего не знаю.

 
traveller00:
И второй вопрос вдогонку. Почему нельзя на массив таких структур натравить ArraySort? Что мешает сравнивать их через оператор < , который определён?

 Встроенная ArraySort просто функция, перегруженная для всех стандартных типов.

Классы и прочее ООП в помощь. Если все типы(структуры) имели бы общего предка (CObject в СБ) ну и далее по теме...

 
Aleksey Mavrin:

 Встроенная ArraySort просто функция, перегруженная для всех стандартных типов.

Классы и прочее ООП в помощь. Если все типы(структуры) имели бы общего предка (CObject в СБ) ну и далее по теме...

Да как оно внутри сделано, я примерно представляю. Вопрос был скорее не ради ответа. А как предложение обратить внимание на другие варианты реализации, например STL, и сделать похожим образом работы с контейнерами, где можно писать универсальные вещи, включая сортировщики.

 
traveller00:

Да как оно внутри сделано, я примерно представляю. Вопрос был скорее не ради ответа. А как предложение обратить внимание на другие варианты реализации, например STL, и сделать похожим образом работы с контейнерами, где можно писать универсальные вещи, включая сортировщики.

Спору нет, STL форева) Пока ArraySort думаю можно перегрузить сделав шаблонной и тогда натравить уже, но я в шаблонах не спец, мне как-то привычней с обычными иерархиями классов работать.

Причина обращения: