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

 

Ошибка при компиляции

class B {};
class A {
template<typename T> void f() const {} //1
template<typename T> void f()       {} //2
        void g() const { f<B>(); } //error: 'f<B>' - call non-const method for constant object
};
А если поменять местами строки (1) и (2) то нормально. А какая разница?
 

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

class B {};
struct A {
template<typename T> void f()       { Print( __FUNCSIG__ ); } //2
template<typename T> void f() const { Print( __FUNCSIG__ ); } //1
        void g()       { f<B>(); }
};
void OnStart()
{
        A a;
        a.g();
}
В результате вызывается метод const (1), а должен не const (2). Если поменять местами (но не индексами) строки (1) и (2) - то вызывается не const - как и ожидалось 
 

Здравствуйте! Подскажите, почему не выполняется простейшее условие:

if ( Bid > High[iHighest(Symbol(),0,MODE_HIGH,30,1)] )

Журнал ошибок не выдаёт. Прописал Comment(Bid); и заметил, что когда Bid становится больше High[...], то его комментирование останавливается.

А условие такого вида выполняется:

if ( Bid > High[10] )
 
giros:

Здравствуйте! Подскажите, почему не выполняется простейшее условие:

Журнал ошибок не выдаёт. Прописал Comment(Bid); и заметил, что когда Bid становится больше High[...], то его комментирование останавливается.

А условие такого вида выполняется:


Весь код приложите, в том что Вы показали ошибок нет..

 
Vladimir Pastushak:

Весь код приложите, в том что Вы показали ошибок нет..

Я максимально упростил код в поиске ошибки, ошибка точно в строчке условия сравнения Bid > High[...]
Вот весь код, и даже он не выполняется, можно скопировать и проверить:

void OnTick()
  {
   if ( Bid > High[iHighest(Symbol(),0,MODE_HIGH,20,1)] )
      {int Buy = OrderSend(Symbol(),OP_BUY,1,Ask,30,0,0,NULL,12345,0,clrBlue);}
  }
 
giros:

Я максимально упростил код в поиске ошибки, ошибка точно в строчке условия сравнения Bid > High[...]
Вот весь код, и даже он не выполняется, можно скопировать и проверить:


А какой результат Вы ждете ? 

 
giros:

Я максимально упростил код в поиске ошибки, ошибка точно в строчке условия сравнения Bid > High[...]
Вот весь код, и даже он не выполняется, можно скопировать и проверить:


Ваше условие звучит как 

Если цена бид будет больше самого большого хая за последние 20 свечей без учета нулевого бара. И тогда открывать ордера без остановки.


Если у Вас текущая цена бид ниже самого большого хая то никаких действий не будет...

 
Vladimir Pastushak:

А какой результат Вы ждете ? 

Конкретно в данном случае жду - открытие ордера покупки.

В общем случае жду - выполнение оператора {...}.

 
giros:

Конкретно в данном случае жду - открытие ордера покупки.

В общем случае жду - выполнение оператора {...}.


Вы прочитайте внимательно свое условие 

 
giros:

Конкретно в данном случае жду - открытие ордера покупки.

В общем случае жду - выполнение оператора {...}.


У меня Ваше условие работает четко, ордера открываются...

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