Errores, fallos, preguntas - página 1974

 

Error de compilación

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
};
Y si intercambias las líneas (1) y (2), está bien. ¿Cuál es la diferencia?
 

Error de ejecución

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, se llama al método const (1) en lugar de const (2). Si se intercambian las líneas (1) y (2) (pero no los índices), no es const - como se esperaba
 

Hola, ¿pueden decirme por qué no se cumple una simple condición?

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

El registro de errores no aparece. He escrito Comment(Bid); y me he dado cuenta de que cuando Bid es mayor que High[...], su comentario se detiene.

Y esta condición se cumple:

if ( Bid > High[10] )
 
giros:

Hola, me pueden decir por qué no se cumple una simple condición:

El registro de errores no aparece. Comentario prescrito(Oferta); y observó que cuando Oferta se convierte en más de Alta[...], su comentario se detiene.

Y la condición de este tipo se cumple:


Adjunta todo el código, no hay errores en lo que has mostrado...

 
Vladimir Pastushak:

Adjunta el código completo, no hay errores en lo que has mostrado...

He simplificado el código al máximo para encontrar el error, el error está exactamente en la línea de condición de comparación Bid > High[...].
Aquí está el código completo, y aunque no se ejecute, puedes copiarlo y comprobarlo:

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:

He simplificado el código al máximo para encontrar el error, el error está exactamente en la línea de condición de comparación Bid > High[...].
Aquí está todo el código, e incluso no se ejecuta, se puede copiar y comprobar:


¿Y qué resultado espera?

 
giros:

He simplificado el código para encontrar el error. El error está en la línea de la condición de comparación Bid > High[...].
Aquí está el código completo, y aunque no se ejecute, puedes copiarlo y comprobarlo:


Su condición suena así

Si el precio de la oferta será mayor que el mayor máximo de las últimas 20 velas excluyendo la barra cero. Y luego abrir órdenes sin parar.


Si su precio de oferta actual es menor que el mayor de los máximos, entonces no hay acción...

 
Vladimir Pastushak:

¿Qué resultado está esperando?

Concretamente en este caso estoy esperando que se abra una orden de compra.

Generalmente estoy esperando que se ejecute el operador {...}.

 
giros:

Concretamente en este caso estoy esperando que se abra una orden de compra.

En el caso general estoy esperando - la ejecución del operador {...}.


Lea atentamente su condición

 
giros:

Específicamente en este caso estoy esperando - a que se abra una orden de compra.

En el caso general estoy esperando el operador {...}.


Tengo su condición de trabajar claramente, los pedidos se están abriendo...