Erros, bugs, perguntas - página 1974

 

Erro de compilação

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
};
E se trocar as linhas (1) e (2), está bem. Qual é a diferença?
 

Erro de execução

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();
}
Como resultado, o método const (1) é chamado em vez de const (2). Se trocar as linhas (1) e (2) (mas não os índices), não é constante - como esperado
 

Olá! Pode dizer-me por que razão uma simples condição não é cumprida?

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

O registo de erros não aparece. Escrevi Comment(Bid); e reparei que quando Bid se torna mais alto que High[...], os seus comentários param.

E a condição deste tipo está preenchida:

if ( Bid > High[10] )
 
giros:

Olá, pode dizer-me por que razão a condição mais simples não é cumprida?

O registo de erros não aparece. Comentário Prescrito(Bid); e notou que quando Bid se torna mais do que High[...], os seus comentários param.

E a condição deste tipo está preenchida:


Por favor anexe o código completo, não há erros no que mostrou...

 
Vladimir Pastushak:

Anexe todo o código, não há erros no que mostrou...

Simplifiquei ao máximo o código para encontrar o erro, o erro está exactamente na linha de comparação da condição Bid > High[...].
Aqui está o código completo, e mesmo que não seja executado, pode copiá-lo e verificá-lo:

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:

Simplifiquei ao máximo o código para encontrar o erro, o erro está exactamente na linha de comparação da condição Bid > High[...].
Aqui está todo o código, e mesmo que não seja executado, pode copiá-lo e verificá-lo:


E que resultado espera?

 
giros:

Simplifiquei o código para encontrar o erro. O erro está na linha de comparação da condição Bid > High[...].
Aqui está o código completo, e mesmo que não seja executado, pode copiá-lo e verificá-lo:


O seu estado soa assim

Se o preço de oferta for superior à maior alta das últimas 20 velas, excluindo a barra zero. E depois abrir ordens sem parar.


Se o seu preço de oferta actual é mais baixo do que a maior alta, então nenhuma acção...

 
Vladimir Pastushak:

De que resultado está à espera?

Especificamente neste caso, estou à espera de uma ordem de compra para ser aberta.

Geralmente estou à espera que o operador {...} seja executado.

 
giros:

Especificamente neste caso, estou à espera de uma ordem de compra para ser aberta.

Em geral, caso eu esteja à espera de - execução do operador {...}.


Leia atentamente o seu estado

 
giros:

Especificamente neste caso, estou à espera de uma ordem de compra para abrir.

No caso geral estou à espera do operador {...}.


Tenho o vosso estado a funcionar claramente, as encomendas estão a abrir...