Fehler, Irrtümer, Fragen - Seite 2696

 
Alexey Viktorov:

Es liegen keine Fehler vor. Wie Sie im Screenshot sehen können, wird die Bedingung ohne Probleme erfüllt, aber um es im Debugger zu sehen ... So sollte es nicht sein.

die Arbeit mit Double und erst recht unter einem Debugger ist Aufgabe eines Entwicklers, sie ist in ME nicht logisch, wie ich oben schrieb

Ich habe in VS - und unter einem Debugger ohne Probleme geprüft.

Dateien:
asfdfg.jpg  295 kb
 
Alexey Viktorov:

Es werden also nicht zwei Doppelwerte verglichen, sondern, wie in der Dokumentation vorgeschlagen, die normalisierte Differenz wird mit Null verglichen. Und auch in dem Beispiel wird nicht die Differenz, sondern die mit Null initialisierte Variable mit der Zahl Null verglichen...

Und wie kann man bewerten, dass direkte Gleichheit nicht bewertet werden kann, sondern durch ... ... es stellt sich heraus, dass man das kann.

Warum überprüft niemand sein System und sagt mir, wie es funktioniert? Andrei, hast du dich nicht selbst überprüft?

Vervielfältigt. Ich verstehe nicht, warum ich damit meine Zeit vergeude. Wir haben einen Fehler gemeldet und arbeiten daran.

 
Andrey Khatimlianskii:

Vervielfältigt. Ich wüsste nicht, warum wir unsere Zeit damit verschwenden sollten. Sie haben einen Fehler gemeldet, machen Sie weiter.

Ich verschwende meine Zeit damit, zu verstehen, dass es nicht das Problem meines Computers ist, sondern ein allgemeines Problem. Vielen Dank für die Überprüfung.

Igor Makanu:

die Arbeit mit Double und erst recht unter einem Debugger ist die Aufgabe eines Entwicklers, es ist nicht logisch, dass ich das alles mache, wie ich oben schrieb

Ich überprüfte in VS - und unter einem Debugger ohne Probleme

Igor, warum in VS prüfen, wenn es heißt, dass MetaEditor ein Problem ist.

Vor einiger Zeit, als ich den Debugger noch häufig benutzte, ist mir dieses Problem nicht aufgefallen.

 
Alexey Viktorov:

Igor, warum in VS prüfen, wenn es heißt, dass MetaEditor ein Problem ist.

Machen Sie sich nicht zum Helden.

Aber für mich ist Microsoft und alles, was damit zusammenhängt, ein Standard, und wenn es dort funktioniert, sollte es auch mit anderer Software funktionieren, also prüfe ich in VS und vergleiche in ME

ZS: obwohl Sie sich auf ein bekanntes Prinzip verlassen können - MQL ist nicht C++, es funktioniert hier anders

 
Vladimir Pastushak:

Wie kommst du darauf, dass der Winkel von deinem Quadrat aus gemessen wird?

Der Winkel wird in Bezug auf den Preis und die Skala des Charts gemessen.

Bringen Sie die Grafik auf 1 Punkt pro 1 Pixel und Sie erhalten Ihre 45 Grad.

Der Winkel wurde relativ zum ersten Trendlinienpunkt in Pixeln gemessen. Das Quadrat diente als ungefährer Bezugspunkt. Vielen Dank für die Antwort.

 
Evgeniy Zhdan:

Haben Sie die Ursache gefunden? Denn auch bei mir hat es gestern angefangen. Irgendwas mit den Anführungszeichen, glaube ich.

Geben Sie mir den Link zu der Nachricht. Ich weiß es nicht mehr. ....
 

Fehler MT5 (Build 2375) beim Aufruf einer Funktion für ein Argument mit dem Datentyp color wird der implizite Typ conversation verwendet, obwohl es eine überladene Template-Funktion mit dem Datentyp color gibt, die der Signatur entspricht.
Es war sehr schwierig, den Fehler zu finden und zu reproduzieren, weil das Problem nur Fälle betrifft, in denen eine Template-Klasse als Argument einer Template-Funktion verwendet wird und ihr Template-Parameter mit dem Template-Parameter einer Funktion übereinstimmt.

#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
}
 
Was ist hier das Problem?
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);
}


Früher hat es funktioniert.

 
fxsaber:
Was ist hier das Problem?


Das hatfrüher funktioniert.

Deklaration einer Klasse innerhalb einer Funktion?

 
Stanislav Korotky:

Deklarieren einer Klasse innerhalb einer Funktion?

Sie können es in MQL tun, ich habe es nirgends gesehen, aber es funktioniert, aber ich habe es nicht mit Vorlagen ausprobiert

Die einzige Verwendung, die ich gefunden habe - Sie können eine statische Instanz der Klasse innerhalb der Funktion beschreiben, und es ist praktisch, um komplexe Berechnungen zu initialisieren, so dass Sie mehrere Funktionen, die sich gegenseitig in wiederum in eine einzige Funktion drehen können

z.B. "eine Klasse in eine Funktion verpacken" - und so weiter und so fort

Grund der Beschwerde: