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

 
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

 

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

 
2023.12.29 18:14:28.462 Demo (EURUSD,M15) array out of range in 'Unknown file' (874,1)

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

 
Сомнительный результат при выполнении:
template<typename T> class A { public: A() {Print(1);} }; //(1)
template<typename T> class A { public: A() {Print(2);} }; //(2)
void OnStart()
{
    A<int> a;
}

Результат: 1                       а почему не 2 ?

Ожидалось: Сообщение об ошибке

 
Сомнительный результат:
#define MACRO( X, X )	X
void OnStart()
{
    Print(MACRO( 1, 2 ));
}

Результат: 1                       а почему не 2 ?

Ожидалось: Сообщение об ошибке

Причина обращения: