Errores, fallos, preguntas - página 2696

 
Alexey Viktorov:

No hay errores. Como puedes ver en la captura de pantalla la condición se cumple sin problemas, pero para verlo en el depurador... no debería ser así.

trabajar con el doble y más bajo un depurador es un trabajo de desarrollador, no es lógico en ME, como escribí arriba

Lo he comprobado en VS - y bajo un depurador sin problemas.

Archivos adjuntos:
asfdfg.jpg  295 kb
 
Alexey Viktorov:

Así que no se comparan dos dobles, sino que, como se sugiere en la documentación, la diferencia normalizada se compara con cero. E incluso en el ejemplo, no la diferencia, pero la variable inicializada por cero se compara con el número cero...

Y cómo se puede evaluar esa igualdad directa no se puede evaluar, sino a través de ... ... resulta que sí se puede.

¿Por qué nadie comprueba su sistema y me dice cómo funciona? Andrei, ¿no te has revisado a ti mismo?

Reproducido. No entiendo por qué estoy perdiendo mi tiempo en esto. Hemos informado de un error y estamos trabajando en él.

 
Andrey Khatimlianskii:

Reproducido. No veo por qué debemos perder el tiempo en esto. Reportado un error, sigue adelante.

Estoy perdiendo el tiempo en esto para entender que no es un problema de mi ordenador, es un problema general. Gracias por la comprobación.

Igor Makanu:

trabajar con el doble y más aún bajo un depurador es un trabajo de desarrollador, no es lógico en ME todo esto, como escribí arriba

lo he comprobado en VS - y bajo un depurador sin problemas

Igor, por qué comprobar en VS si dice que el problema de MetaEditor.

Hace tiempo, cuando usaba mucho el depurador, no notaba este problema.

 
Alexey Viktorov:

Igor, por qué comprobar en VS si dice que el problema de MetaEditor.

No te conviertas en un héroe.

Pero, para mí, Microsoft y todo lo que se asocia a él es un estándar, y si funciona allí, debería funcionar con otro software de forma similar, así que lo compruebo en VS y comparo en ME

ZS: aunque puedes basarte en un principio bien conocido - MQL no es C++, aquí funciona de forma diferente

 
Vladimir Pastushak:

¿Qué te hace pensar que el ángulo se medirá desde tu escuadra?

El ángulo se mide en relación con el precio y la escala del gráfico.

Lleva el gráfico a 1 punto por 1 píxel y obtendrás tus 45 grados.

El ángulo se midió en relación con el primer punto de la línea de tendencia en píxeles. La plaza actuó como punto de referencia aproximado. Gracias por la respuesta.

 
Evgeniy Zhdan:

¿Has encontrado la causa? Porque a mí también me empezó a pasar ayer. Algo con las comillas, creo.

Dame el enlace del mensaje. Ya no me acuerdo. ....
 

Bug MT5 (build 2375) cuando se llama a la función para el argumento con el tipo de datos color, se aplica la conversación de tipos implícita a pesar de que existe una función de plantilla sobrecargada adecuada por la firma con el tipo de datos color.
Fue muy difícil detectar y reproducir el error porque el problema sólo afecta a los casos en los que se utiliza una clase de plantilla como argumento de una función de plantilla y su parámetro de plantilla coincide con el parámetro de plantilla de una función.

#define  PRINT(x) ; Print(#x, ":", string(x))

template<typename T>
class A : public T{};

class B {};
class C : public A<B>{};


template<typename _Tp>
class D{
   template<typename T>
   void test(const A<T>&, const long){PRINT(__FUNCSIG__);}
   
   template<typename T>
   void test(const A<T>&, const ulong){PRINT(__FUNCSIG__);}
   
   template<typename T>
   void test(const A<T>&, const color){PRINT(__FUNCSIG__);}
    
public:
   D(){
      C c;
      _Tp value = {};
      test(c, value);   // 'test' - ambiguous call to overloaded function
   }
};


void OnStart(){
   D<long> d_long;      // Ok
   D<ulong> d_ulong;    // Ok
   D<color> d_color;    // Compile Error
}
 
¿Cuál es el problema aquí?
void OnStart()
{
  class CLASS
  {
  public:
    template <typename T> // template declarations are not allowed in local classes
    static void f( T ) {}
  };
  
  int i = 0;
  
  CLASS::f(i);
}


Solía funcionar.

 
fxsaber:
¿Cuál es el problema aquí?


Antes funcionaba.

¿Declarar una clase dentro de una función?

 
Stanislav Korotky:

¿Declarar una clase dentro de una función?

Se puede hacer en MQL, no lo he visto en ningún sitio, pero funciona, pero no lo he probado con plantillas

El único uso que he encontrado - puedes describir una instancia estática de la clase dentro de la función, y es conveniente para inicializar cálculos complejos, por lo que puedes convertir varias funciones que se llaman entre sí a su vez en una sola función

es decir, "envolver una clase en una función", etc.