Errori, bug, domande - pagina 2696

 
Alexey Viktorov:

Non ci sono errori. Come potete vedere nello screenshot la condizione è soddisfatta senza problemi, ma per vederlo nel debugger ... non dovrebbe essere così.

lavorare con il doppio e tanto più sotto un debugger è un lavoro da sviluppatore, non è logico in ME, come ho scritto sopra

Ho controllato in VS - e sotto un debugger senza problemi.

File:
asfdfg.jpg  295 kb
 
Alexey Viktorov:

Quindi non sono due doppi che vengono confrontati, ma come viene suggerito nella documentazione, la differenza normalizzata viene confrontata con zero. E anche nell'esempio, non la differenza, ma la variabile inizializzata da zero è paragonata al numero zero...

E come si può valutare che l'uguaglianza diretta non può essere valutata, ma attraverso ... ... si scopre che è possibile.

Perché nessuno controlla il proprio sistema e mi dice come funziona? Andrei, non ti sei controllato?

Riprodotto. Non capisco perché sto perdendo tempo con questo. Abbiamo segnalato un bug e ci stiamo lavorando.

 
Andrey Khatimlianskii:

Riprodotto. Non vedo perché dovremmo sprecare il nostro tempo su questo. Segnalato un bug, vai avanti.

Sto perdendo il mio tempo per capire che non è un problema del mio computer, è un problema generale. Grazie per il controllo.

Igor Makanu:

lavorare con il doppio e ancora di più sotto un debugger è un lavoro da sviluppatore, non è logico in ME tutto questo, come ho scritto sopra

Ho controllato in VS - e sotto un debugger senza problemi

Igor, perché controllare in VS se dice che è un problema di MetaEditor.

Qualche tempo fa, quando usavo molto il debugger, non avevo notato questo problema.

 
Alexey Viktorov:

Igor, perché controllare in VS se dice che è un problema di MetaEditor.

Non fare di te un eroe.

Ma, per me, Microsoft e tutto ciò che è associato ad essa è uno standard, e se funziona lì, dovrebbe funzionare con altri software in modo simile, quindi controllo in VS e confronto in ME

ZS: anche se ci si può basare su un principio ben noto - MQL non è C++, qui funziona diversamente

 
Vladimir Pastushak:

Cosa ti fa pensare che l'angolo sarà misurato dal tuo quadrato?

L'angolo è misurato rispetto al prezzo e alla scala del grafico.

Portate il grafico a 1 punto per 1 pixel e otterrete i vostri 45 gradi.

Pensava che l'angolo fosse misurato rispetto al primo punto della linea di tendenza in pixel. Il quadrato fungeva da punto di riferimento approssimativo. Grazie per la risposta.

 
Evgeniy Zhdan:

Avete trovato la causa? Perché ha iniziato a succedere anche a me ieri. Qualcosa con le virgolette, credo.

Dammi il link del messaggio. Non ricordo più. ....
 

Bug MT5 (build 2375) quando si chiama la funzione per l'argomento con il tipo di dati colore, viene usata la conversazione implicita del tipo nonostante ci sia una funzione template sovraccaricata con il tipo di dati colore che corrisponde alla firma.
È stato molto difficile catturare e riprodurre il bug perché il problema riguarda solo i casi in cui una classe template è usata come argomento di una funzione template e il suo parametro template corrisponde al parametro template di una funzione.

#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
}
 
Qual è il problema qui?
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);
}


Unavolta funzionava.

 
fxsaber:
Qual è il problema qui?


Prima funzionava.

Dichiarare una classe dentro una funzione?

 
Stanislav Korotky:

Dichiarare una classe dentro una funzione?

Si può fare in MQL, non l'ho visto da nessuna parte, ma funziona, ma non ho provato con i modelli

L'unico uso che ho trovato - puoi descrivere un'istanza statica della classe all'interno della funzione, ed è conveniente per inizializzare calcoli complessi, così puoi trasformare diverse funzioni che si chiamano a turno in una singola funzione

cioè "avvolgere una classe in una funzione" - e così via