Тернарный оператор

 

Подскажите, пожалуйста, почему if else работает, а тернарный оператор на эти же условия - нет. И то, и другое привел на скрине.

Такие ошибки при тернарном операторе

Сам код 

   char type = 0;
  
   ENUM_POSITION_TYPE typeMarket; //= (type == 0) ? POSITION_TYPE_BUY : POSITION_TYPE_SELL;
   
   if(type == 0)
     {
      typeMarket = POSITION_TYPE_BUY;
     } else
           {
            typeMarket = POSITION_TYPE_SELL;
           }
 
Нет никаких ошибок, после раскомментирования тоже нет. Наверно у себя где-то скобку потеряли.
 
Nikita Chernyshov:

Подскажите, пожалуйста, почему if else работает, а тернарный оператор на эти же условия - нет. И то, и другое привел на скрине.

Такие ошибки при тернарном операторе

Сам код 

А что и то и другое? Оба кода Вы привели с if-else. Покажите код, который выдает ошибки.

 
Vasiliy Pushkaryov #:

А что и то и другое? Оба кода Вы привели с if-else. Покажите код, который выдает ошибки.

Уберите комментирование в моем коде, получите оба варианта.

 
Dmitry Fedoseev #:
Нет никаких ошибок
ENUM_POSITION_TYPE typeMarket = (type == 0) ? POSITION_TYPE_BUY : POSITION_TYPE_SELL;

И здесь?

 
Valeriy Yastremskiy #:

И здесь?

и здесь

 
Dmitry Fedoseev #:
Нет никаких ошибок, после раскомментирования тоже нет. Наверно у себя где-то скобку потеряли.

Странная штука... если беру свою функцию, делаю ее в чистом советнике, все работает нормально.

Старый тоже компилируется нормально без этой функции, заношу эту функцию в старый - ошибка в тернарном появляется.

 
Nikita Chernyshov #:

Странная штука... если беру свою функцию, делаю ее в чистом советнике, все работает нормально.

Старый тоже компилируется нормально без этой функции, заношу эту функцию в старый - ошибка в тернарном появляется.

Код с ошибкой выложите. Так без телепатии не помочь)

 
Nikita Chernyshov #:

Странная штука... если беру свою функцию, делаю ее в чистом советнике, все работает нормально.

Старый тоже компилируется нормально без этой функции, заношу эту функцию в старый - ошибка в тернарном появляется.

попробую угадать : одноимённые локальные переменные (в разных казалось бы scope) и MT4 ?

 
Maxim Kuznetsov #:

попробую угадать : одноимённые локальные переменные (в разных казалось бы scope) и MT4 ?

IDE (mql4) под линуксом на такое ругается бывает :)

 
Maxim Kuznetsov #:

попробую угадать : одноимённые локальные переменные (в разных казалось бы scope) и MT4 ?

нашел проблему.

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

и таким же образом назвал аргумент пользовательской функции. Спасибо