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

 

Mihail Matkovskij, 2015.11.01 12:55

Не могу обновить терминал до 902 билда, раньше всё обновлялось, а сейчас не могу это сделать вот уже 3 день. Версия: 4; билд: 890; битность: 32. В чём может быть причина?

Что именно не получается? Что делаете и что получаете? Какие ошибки? 
 

Ошибка при выполнении

class A { public:
        virtual bool    g() { Print( __FUNCTION__ ); return true; }
        virtual bool    f() { return g(); }
};
class B : public A { public:
        virtual bool    g() { Print( __FUNCTION__ ); return true; }
};
void OnStart()
{
        int i = 0;
        for ( B b; b.f(); i++ )
                if ( i++ >= 3 )
                        break;
}                

Результат:           а должен быть: 

 
Karputov Vladimir:
Что именно не получается? Что делаете и что получаете? Какие ошибки? 

По скольку в логе конфиденциальная информация, сбрасываю вам в личку.

 
A100:

Утечка памяти


A100, вы прямо уловитель багов!!! Продолжайте! Снимаю перед вами шляпу :) 

 
Stanislav Korotky:
Это МТ4. Я это пробую уже несколько последних дней. Билд 902/32.

На MT4\891\32 разными компиляторами (build: 1174, 1210) пробовал Ваш пример , результат такой

 

Или обновитесь... или откатитесь

 
sigma7i:

A100, вы прямо уловитель багов!!! Продолжайте! Снимаю перед вами шляпу :) 

Ну так сразу видно, кто в реальности использует возможности ООП, а кто мастер рассуждений на эту тему (целая ветка мастеров)

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

ООП, чтоб он был здоров....

George Merts, 2015.10.26 19:58

Ты просто не умеешь его готовить.

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

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


 
A100:

Единственный способ избавится от этой ошибки - это заменить в metaeditor.ini Optimize=1 на 0

Мне в общем-то не сильно нужно от неё избавляться, но вдруг разработчикам нужно. Все таки такие ошибки не должны вообще появляться при компиляции, если компилятор работает нормально. Поэтому и привел точный пример кода, когда она появляется.
 
Ilya Malev:
Поэтому и привел точный пример кода, когда она появляется.
На build 1210\32 не удается повторить
Так?
void OnStart()
{
        ENUM_TIMEFRAMES tf=NULL;
        if(tf==NULL)   tf=Period();
}
 
A100:

На MT4\891\32 разными компиляторами (build: 1174, 1210) пробовал Ваш пример , результат такой

 

Или обновитесь... или откатитесь

Ну нет. Сервис деск наборот всегда пишет "обновляйтесь на последний билд" (что по идее, конечно, должно быть правильно, если б они только фиксили баги). Проблему я обнаружил на билде 900, потом обновился на 902 - лучше не стало. Видимо, проблема возникла из-за добавления шаблонов классов. Пока с шаблонами будут какое-то время "пляски", считаю, что лучше ими вообще не пользоваться.

 
A100:
На build 1210\32 не удается повторить
Так?
Причина обращения: