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

 
stringo:
Да, кстати, что Вы имели в виду, пытаясь организовать левый сдвиг на 35 (именно в это число преобразуется литерал '5')?
Это был максимально упрощенный пример. Смысл был именно в перегрузке оператора. Остается использовать явное преобразование
 
A100:
Это был максимально упрощенный пример. Смысл был именно в перегрузке оператора. Остается использовать явное преобразование
Спасибо за упрощение примера. На таких упрощениях очень удобно разбирать ошибки
 
Еще одна несостыковка
class A {
public:
        virtual int f() { return ( 1 ); }
};

class B : public A {
public:
        virtual int f() { return ( 2 ); }
};

int g( A& a )
{
        return ( a.f() );
}

void OnStart()
{
        B b;
        Print( g( b ) ); // результат: 1
}
В то время как аналогичная конструкция в С++ возвращает результат: 2, что логично, поскольку объект именно B, а не A
 
A100:
Еще одна несостыковкаВ то время как аналогичная конструкция в С++ возвращает результат: 2, что логично, поскольку объект именно B, а не A
Да, похоже на ошибку, спасибо за её обнаружение - обязательно проверим и исправим.
 
Пункты в голосовании, не переводятся автопереводом.
 
MetaDriver:

Ну как там у вас?

Я не могу воспроизвести вашу ситуацию по простой причине: у меня нету файла :

Да именно в загрузке файла была ошибка, а не в буферах. Сейчас вроде сдвинулось с места.
 
Al_key:
Да именно в загрузке файла была ошибка, а не в буферах. Сейчас вроде сдвинулось с места.

Еще вопросик:

Есть ли у кого пример как на маленьких графиках (те - которые объекты и можно на основной кидать) запускать польз. индюк? Использую в МТ4 индексы валют, и очень прикольно было бы их в маленьком передвижном окошке МТ5 видеть, а не тратить пол экрана.

 
Сигнал сделки копирует но объем всегда 0.01 а у продавца разные. Что у меня делать? чтобы и объем был как у продавца.
 
A100:
Из справочника MQL5: 

Любой одиночный символ, заключенный в одинарные кавычки, или шестнадцатеричный ASCII-код символа в виде '\x10' является символьной константой и имеет тип ushort.

Тогда возникает вопрос почему компилятор не может отличить ushort от int - без явного указания?
Нашлась причина, оказывается компилятор считает одиночный символ в кавычках, например '5' не ushort, а short, что подтверждает пример:
class A {
public:
        int operator<<( ushort ch ) { return ( 1 ); }
        int operator<<( short  ch ) { return ( 2 ); }
        int operator<<( int   ch ) { return ( 3 ); }

        int f( ushort ch ) { return ( 4 ); }
        int f( short  ch ) { return ( 5 ); }
        int f( int   ch ) { return ( 6 ); }
};

int h( ushort ch ) { return ( 7 ); }
int h( short  ch ) { return ( 8 ); }
int h( int   ch ) { return ( 9 ); }

void OnStart()
{
        A a;
        Print( a << '5' );  // результат: 2
        Print( a.f( '5' )); // результат: 5
        Print( h( '5' ));   // результат: 8
}

Все компилируется, работает и не требует указания явных преобразований.

Соответственно либо описание не соответствует компилятору, либо компилятор работает не по описанию. Хотелось бы соответствия.

 

что может быть: 

critical runtime error 1079902208 in OnTick function (unknown error)  

testing 2 hour time frame 

Проверка на доступные средства стоит.  

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