Баг компилятора при параметре шаблона = void* - страница 8

 
A100:

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

Неправильно. Использование скобок уменьшает вероятность ошибок.

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

 
fxsaber:

Неправильно. Использование скобок уменьшает вероятность ошибок.

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

Это не концепция, а общие рассуждения

Вопрос стоит в практической плоскости и носит не абстрактный, а конкретный характер: Где нужны скобки? Везде? Или выборочно? Тогда кто определяет выбор? fxsaber? Можете сформулировать однозначно? Так чтобы эту концепцию можно было реализовать в компиляторе

Я сформулировал: "только там где без них не обойтись"

 
pavlick_:

ЗЫ: но если бы я делал, то делал максимально схоже со стандартной плюсовой библиотекой (имена, поведение и т.д.), поэтому для меня выбора нет. Зачем плодить ещё одну спецификацию, когда всё уже написано?

Если бы я делал, то массивы объектов и указателей в mql не нужны вообще. Динамические списки и маркосовые циклы типа for each позволяют решить 99% задач в трейдинге наиболее компактным и удобным образом. Даже отдельного класса списка не нужно. Все эти навороты нужны на бОльших масштабах, чем мы как правило имеем тут...

 
A100:Можете сформулировать однозначно?

там где облегчают понимание кода

 
TheXpert:

там где облегчают понимание кода

Так чтобы эту концепцию можно было реализовать в компиляторе. Никто не запрещает ставить лишние скобки. Вопрос в лишних предупреждениях

 
A100:

Вопрос стоит в практической плоскости и носит не абстрактный, а конкретный характер: Где нужны скобки? Везде? Или выборочно? Тогда кто определяет выбор? fxsaber? Можете сформулировать однозначно? 

Вопрос был, прав ли компилятор MT4


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

 
fxsaber:

В данном случае прав.

На данном этапе конкретные примеры не нужны (их можно привести сколь угодно много). Нужна единая концепция, которую можно реализовать в компиляторе (когда нужно выдавать предупреждения в случае отсутствия скобок)

 
A100:

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

Она уже неплохо реализована. Просто MT4 оказался умнее.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5

fxsaber, 2018.12.11 20:22

Это совсем не лишние сообщения. Приоритеты есть всегда

bool a = r && g || b; // check operator precedence for possible error; use parentheses to clarify precedence

Компилятор уже и пятерки предупреждает о возможной ошибке.

 
fxsaber:

Она уже неплохо реализована. Просто MT4 оказался умнее.

Предупреждение выдано только потому, что в MQL5 приоритеты другие. А не потому что ...

Т.е. действует концепция: "Предупреждения возможно нужны ещё и там, где раньше в MQL4 было по другому". Таким образом Разработчики исправили свои предыдущие огрехи... не более того

 
Было бы удобнее если бы компилятор предлагал автоматически расставить скобки "правильно", по типу того как эксель делает когда неполную формулу напишешь.
Причина обращения: