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

 
Комбинатор:
у меня неделю уже висит в "отправлен на проверку"
"представлен на проверку" - пять дней.
 
fxsaber:
Хороший формат!

В том то и дело, что не всегда он хорош. Попробуйте

Print(_Point);
на пятизнаке
 
Slawa:

В том то и дело, что не всегда он хорош. Попробуйте

на пятизнаке
Кстати, а почему до сих пор повсеместно встречаются конструкции "_Point", "_Symbol" вместо "Point()" и "Symbol()"? Ведь, всё, что с "_*****" - это пережитки и наследие старого языка?
 
Karputov Vladimir:
Кстати, а почему до сих пор повсеместно встречаются конструкции "_Point", "_Symbol" вместо "Point()" и "Symbol()"? Ведь, всё, что с "_*****" - это пережитки и наследие старого языка?

А потому что "_Point" - это переменная в которой хранится значение пункта символа, а "Point()" - функция, которая получает это значение.

Применив "_Point" мы быстее получим уже готовое значение пункта. 

 
prostotrader:

А потому что "_Point" - это переменная в которой хранится значение пункта символа, а "Point()" - функция, которая получает это значение.

Применив "_Point" мы быстее получим уже готовое значение пункта. 

Системная функция Point() на самом деле инлайнится и преобразуется в простой доступ к переменной _Point

 
Slawa:

Системная функция Point() на самом деле инлайнится и преобразуется в простой доступ к переменной _Point

К сожалению, я не разработчик, и черпаю знания из описания в хелпе.

Но "кто-то", изначально, должени записать данныее в _Point :) 

 
prostotrader:

К сожалению, я не разработчик, и черпаю знания из описания в хелпе.

Но "кто-то", изначально, должени записать данныее в _Point :) 

Да. Ряд константных переменных инициализируются перед инициализацией mql-программы.

Моя ремарка про инлайн как раз относилась к тому, что не надо бояться использовать функциональную запись. А ещё если кто-то решит сэкономить такты на прямом доступе к переменной _Point, то ничего не получится.

Лично я использую прямой доступ к переменным типа _Point всего лишь по старой привычке

 
Slawa:

Системная функция Point() на самом деле инлайнится и преобразуется в простой доступ к переменной _Point

Кто то говорил, как помнится, Ренат или Вы, что рекомендуется использовать Point(), Digits()... Так ли это? Я, по крайней мере, помятуя рекомедацию, так и делаю всегда. 
 
Andrey Dik:
Кто то говорил, как помнится, Ренат или Вы, что рекомендуется использовать Point(), Digits()... Так ли это? Я, по крайней мере, помятуя рекомедацию, так и делаю всегда. 

Да, всё правильно.

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

 

Несколько вопросов и пожеланий к разработчикам.

1.  Год назад мы обсуждали в сервис-деске тему возврата значения функции по ссылке (заявка 1292558).  В итоге там заверили, что вопрос решён, и данная фича появится в конце осени (прошлого года).  Но чё-то воз и ныне там.  Можно узнать, по какой причине не реализовали?

2.  Как насчёт множественного наследования?  Мне например это очень нужно.  Хотя бы двойное наследование.

3.  Крайне необходимая для ООП вещь - ключевое слово override для виртуальных функций в производных классах. Иначе нет контроля за ними со стороны компилятора.  Где-то тип аргумента не тот поставил, где-то const забыл - и всё, это уже другая функция.  Получаем трудноуловимые ошибки.

4.  Нужна возможность перегрузки оператора приведения.