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

 
A100 #:

Макрос определен в параметрической форме - соответственно скобки - это неотъемлимая его часть. А без скобок - это и не макрос вовсе. Вот подобный, работающий на MQL пример:

Соответственно:

Путаете функцию с макросом. Макрос - это условная замена в исходнике, почти как в текстовом редакторе по CTRL+H.

 
fxsaber #:

Путаете функцию с макросом. Макрос - это условная замена в исходнике, почти как в текстовом редакторе по CTRL+H.

А в С++ тоже путают? - там нет ошибок в этом примере

По мне - так это Вы путаете параметрический и непараметрический макросы

 
Andrey Latysch #:
ЗДРАВСТВ КАКУЙТЕ ПОДСКАЖИТЕ ПОЖАЙЛУСТО КАК ВОСТАНОВИТЬ СВОЙ АКАУНТ ЕСЛИ НЕТ ДОСТУПА К СТАРОЙ ПОЧТЕ НЕ ПОРОЛЯ НЕ ЛОГИНА НЕ ПОМНЮ НАЗВАНИЕ ПОЧТЫ ТОЛЬКО ОСТАЛОСЬ

Внизу страницы "Контакты и обращения". Создайте заявку в Сервисдеск.


Свяжитесь с нами
Свяжитесь с нами
  • www.mql5.com
Вы можете вести переписку и видеть историю своих обращений в службу поддержки mql5.com, даже если вы не имеете регистрации на сайте.
 
A100 #:

А в С++ тоже путают? - там нет ошибок в этом примере

Поэтому там значительно больше потенциальных ошибок у программистов.

У авторов всегда свое виденье своего языка.

 
fxsaber #:

У авторов всегда свое виденье своего языка.

Так любую ошибку в реализации можно оправдать. Ниже то же можно сказать, что если сначала template, а потом class, то можно, а если наоборот, то - нельзя.

А почему? А потому что у нас свое виденье!

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

Ошибки, баги, вопросы

A100, 2023.12.27 10:30

В одном случае есть ошибка при компиляции, а в другом нет:
class T {};          //(1)
template<typename T> //(2)//Error: 'T' - identifier already used
void f() {}
template<typename T> //(2)//нормально
void f() {} 
class T {};          //(1)

А какая принципиальная разница в каком порядке идут (1) и (2) ?

 
fxsaber #:

Поэтому там значительно больше потенциальных ошибок у программистов.

Откуда у Вас такая информация? Да еще при том, что в MQL имеют место неявные преобразования, включая преобразование от базового к производному

 
A100 #:

Откуда у Вас такая информация?

Из Вашего примера про макрос. Для меня отсутствие сообщения об ошибке в такой ситуации является причиной появления возможной трудно-уловимой ошибки.

Много вольности от компилятора порождает и много проблем, которые не всегда возможно оправдать доп. возможностями.

 
fxsaber #:

Из Вашего примера про макрос. Для меня отсутствие сообщения об ошибке в такой ситуации является причиной появления возможной трудно-уловимой ошибки.

Использование макросов по определению может приводит к трудноуловимым ошибкам (это презюмируется). И компилятор никак Вам в этом не поможет. Есть общепризнанные устоявшиеся правила разбора макросов и лучше руководствоваться ими, чем раз в пять лет менять свои

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

Ошибки, баги, вопросы

A100, 2023.06.20 12:11

То же немало удивлен... Когда последний раз вносились изменения в #define - наверное лет 5 назад

 
Ошибка при выполнении:
#define MACRO(X)    Print(__COUNTER__-X,":",__COUNTER__-X,":",__COUNTER__-X)
void OnStart()
{
    MACRO(__COUNTER__-1);
    MACRO(__COUNTER__-1);
}

Результат:   1:2:3  3:4:5 

Ожидалось: 0:1:2  0:1:2

 

Доброго дня!
Вопрос: можно ли изменять параметры терминала (вкладка Сервис-Настройки-Графики) из эксперта? Если да, то как?
Для меня в данный момент важен конкретно пункт "Выделять объекты одиночным кликом мыши".
Спасибо!