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

 

Подскажите есть в mql5 возможность комментировать вывод ошибки при компиляции как в php ?

 
Anton Ohmat:

Подскажите есть в mql5 возможность комментировать вывод ошибки при компиляции как в php ?

GetLastError()? Если нет - приведите формат, какой Вы хотите видеть?
 
Alexey Kozitsyn:
GetLastError()? Если нет - приведите формат, какой Вы хотите видеть?

ну в php есть @переменная = ....

и комментируется вывод ошибки - удобно для простых ошибок во время компиляции (например для неувязки типов при переводе в string)

 
Anton Ohmat:

ну в php есть @переменная = ....

и комментируется вывод ошибки - удобно для простых ошибок во время компиляции (например для неувязки типов при переводе в string)

В mql нужно проверять код ошибки явно (во время выполнения), а во время компиляции итак выскочит предупреждение, при возможной ошибке в приведении типов.
 
Alexey Kozitsyn:
В mql нужно проверять код ошибки явно (во время выполнения), а во время компиляции итак выскочит предупреждение, при возможной ошибке в приведении типов.
Так вот и хочется частично отключить выборочно, вывод ошибок во время компиляции.
 
Anton Ohmat:
Так вот и хочется частично отключить выборочно, вывод ошибок во время компиляции.
Отключать ничего не нужно. Ошибок не возникнет если правильно приводить типы друг к другу.
 
Anton Ohmat:
Так вот и хочется частично отключить выборочно, вывод ошибок во время компиляции.
Чтобы не видеть ошибок и предупреждений при компиляции, нужно их просто испоавить в коде. Не обманывайте себя, вы же с деньгами хотите работать.
 

Неоднозначность

struct A {
        int f() { return B::i; } //error: 'i' - protected member access error
};
struct B : A {
protected: //(*) или например private:
        static int i;
};
int B::i;
В то же время без строки protected: (*) - компилируется без ошибок

Ожидалось: одинаковое поведение как со строкой protected: (*) - так и без нее

Дополнительно: C++ не компилирует оба случая

 
A100:

Неоднозначность

В то же время без строки protected: (*) - компилируется без ошибок

Ожидалось: одинаковое поведение как со строкой protected: (*) - так и без нее 

"Предок" видеть protected/private-поля и не должен.

Если хочется B::f() определять в A::f(), то придется что-то придумать в данном случае.
 
A100:

Дополнительно: C++ не компилирует оба случая

Если добавить

struct B; 

в начале кода, один из двух случаев по идее должен компилироваться. может mql компилятор такой умный что сам недостающую форвард декларацию добавляет?