Пожелания для МТ5 - страница 70

 
MetaDriver:

Компиляторщикам.  Пожелание.

Пожалуйста, сделайте передачу мелких структур по значению, а не только по ссылке.  А то жутко тормозит всяка комплексная/рациональная арифметика.

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


Как только мы разрешим передавать структуры по значению, начнутся реальные тормоза. Девелоперы по незнанию будут повсеместно использовать передачу огромных структур через стек и затормозят свои программы.

 
MetaDriver:

Множественное наследование - точно зло.  

Ы? Как отнаследоваться от двух интерфейсов?

Я вапче за слияние с шарпом, а не с плюсами.  Там всё гораздо разумнее, с учётом опыта поколений.

Хоть с басиком. Такие выражения откровенный троллинг.
 
MetaDriver:

Компиляторщикам.  Пожелание.

Пожалуйста, сделайте передачу мелких структур по значению, а не только по ссылке.  А то жутко тормозит всяка комплексная/рациональная арифметика.

Просто установить ограничение (на ваше усмотрение - 32 или 64 байта) после которого компилятор не пропускает структуру передаваемую по значению и жёстко требует передачу по ссылке.

Также очень хотелось бы иметь возможность возвращать мелкие структуры как результат функции.

--

За перегрузку операторов вообще четырьмя конечностями голосую. Надеюсь когда-то до этого дойдут руки. Вроде как курс "на слияние с С++" взят и в целом  поддерживается.

Функциональный синтаксис при арифметических действиях с нестандартными математическими объектами весьма неудобен, и к тому же изрядно подтормаживает,

поскольку инлайн-подстановками не заменяется и требует расходов на обращение к функциям.

 

Нет. Структуры только по ссылке. Без исключений. За тормоза давайте цифры, чтобы можно было оценить масштаб катастрофы.

У нас раньше была возможность возвращать структуры как результат функций. В конце концов мы эту возможность перекрыли из-за неоднозначности реализации (наши внутренние разборки). Приняли решение, что так как структуры передаются по ссылке, то и передавайте результирующую структуру параметром.

Перегрузка операторов возможно будет. Но не сейчас. 

 
Разработчикам: сделайте, пожалуйста, чтобы OnTimer() работал в индикаторах, которые не прикреплены к чарту.
 
Lizar:
Разработчикам: сделайте, пожалуйста, чтобы OnTimer() работал в индикаторах, которые не прикреплены к чарту.
+1000
 
stringo:

1.  Нет. Структуры только по ссылке. Без исключений. За тормоза давайте цифры, чтобы можно было оценить масштаб катастрофы.

2.  У нас раньше была возможность возвращать структуры как результат функций. В конце концов мы эту возможность перекрыли из-за неоднозначности реализации (наши внутренние разборки). Приняли решение, что так как структуры передаются по ссылке, то и передавайте результирующую структуру параметром.

3.  Перегрузка операторов возможно будет. Но не сейчас. 

1. :)  Катастрофа отменяетца.  Померял, сильно удивился, тормоза не в этом (скрипт в прицепе). Буду искать у себя и оптимизироваться.  Но синтаксис во многих случаях удобнее, когда можно выражения подставлять в параметры. Мда.   Ладно, с этим смириться можно. Терпимо. Главное, щёб не тормозило.

2. А можно вернуть, таки, взад?  Присваивание структур ведь вполне легально.  Значит и возвращать давайте разрешим.  Программа гораздо читабельнее, когда присваивание результата выполнения функции синтаксически унифицировано: 

Y = Func(X);  -  это гораздо понятнее выглядит при беглом чтении кода, нежели Func(X, Y);  // поди догадайся, что Y - out-параметр.

Не, Страустрапу бы не понравилось ваше решение.. неправильное оно какое-то.. :)

3. О!  Вот это хорошо. Вот за это спасибо.

Файлы:
 
MetaDriver:

2. А можно вернуть, таки, взад?  Присваивание структур ведь вполне легально.  Значит и возвращать давайте разрешим.  Программа гораздо читабельнее, когда присваивание результата выполнения функции синтаксически унифицировано: 

По секрету скажу. Just do it.

Оказывается не отрезали. Простые структуры возвращать можно. Однако имейте в виду, что в этом случае добавляются целых 2 лишних копирования - копирование в темповую структуру на стеке и копирование из темповой структуры в результатную

Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 

Почему класс CExpert из стандартной библиотеки в Документации декларируется так,

class CExpert : public CObject

а в файле Expert.mqh мы видим такую декларацию?

class CExpert : public CExpertBase
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
Есть потребность в статье про классы для создания и проверки торговых стратегий...
 
Lizar:
Разработчикам: сделайте, пожалуйста, чтобы OnTimer() работал в индикаторах, которые не прикреплены к чарту.
На данный момент это маловероятно. Вообще функцию установки таймера правильнее было назвать ChartSetTimer(), это название точнее отражает ее поведение.
Документация по MQL5: Работа с событиями / EventSetTimer
Документация по MQL5: Работа с событиями / EventSetTimer
  • www.mql5.com
Работа с событиями / EventSetTimer - Документация по MQL5
Причина обращения: