Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 150

 
Denis Kirichenko:

Es gibt eine. Ich habe nur einen Eintrag aus dem Protokoll hervorgeholt. Die vollständige Fassung sieht folgendermaßen aus:

Dann verstehe ich nicht, woher die letzte Zeile kommt.

 
fxsaber:

Dann verstehe ich nicht, woher die letzte Zeile kommt.

Nach Auswahl des Kontextmenüs "Bearbeiten" kann der Navigator das Original mq5 nicht im gleichen Pfad wie ex5 finden.

Weil ex5 von Shared Projects, wo sich mq5 befindet, in den Ordner scripts verschoben wurde

Reparieren. Führen wir die gleiche intelligente Suche wie in den Einstellungen des Testers durch

 
fxsaber:

Danke, gute Regel. Ich wurde ein Opfer meiner eigenen Inkompetenz. Für einen so offensichtlichen Fall braucht man wirklich mehr Regeln.


Vielleicht für beide Fälle Warnung klug zu tun?

Hier muss ein Kompilierungsfehler vorliegen.
 
Alexey Navoykov:
Hier muss ein Kompilierungsfehler vorliegen.
Ach, kommen Sie. Aus welchen Gründen? delete ändert den Wert des Zeigers nicht, so dass auch keine Konstantenverletzung vorliegt. Also, ich habe hier keine Beschwerden an den Compiler, alles ist klar.
 
Vladimir Simakov:
Ach, kommen Sie. Aus welchen Gründen? delete ändert den Wert des Zeigers nicht, so dass auch keine Konstantenverletzung vorliegt. Ich habe hier also keine Beschwerden über den Compiler.
Ich spreche von der zweiten Probe
 
Alexey Navoykov:
Wir sprechen über das zweite Beispiel
void f( const int i )
{
  static const int j = i;
  
  Print(j);
}

void OnStart()
{
  f(1); // 1
  f(2); // 1
}

Die statische Variable wird beim ersten Aufruf initialisiert.
 
fxsaber:

Die statische Variable wird beim ersten Aufruf initialisiert.
Sind Sie sicher? Ich werde es morgen testen. Die Dokumentation sagt:Statische Variablen existieren zur Laufzeit und werden einmalig vor dem Aufruf der spezialisierten FunktionOnInit()initialisiert. Wenn keine Anfangswerte angegeben werden, nehmen die Variablen der statischen Speicherklasse den Anfangswert Null an.

Wenn Sie so schreiben, wie Sie es tun, dann steckt ein heftiger Fehler hinter dem docs writer.
 
Vladimir Simakov:
...Wenn es so ist, wie Sie schreiben, dann hat der Hafenschreiber einen schlimmen Fehler.
Der Verfasser des Dokuments hat genau Recht. Statische Variablen können nicht mit lokalen Werten initialisiert werden.
Wenn dies wirklich in Mql kompiliert wird, dann muss dieser Fehler bei der Festlegung der Reihenfolge derInitialisierung von statischen Variablen vor einem Jahr aufgetreten sein.
 
Alexey Navoykov:
Der Autor des Docks hat genau Recht. Statische Variablen können nicht mit lokalen Werten initialisiert werden.
Wenn es jetzt in Mql kompiliert, dann muss es ein Fehler aus der Festsetzung statische Variable Initialisierung vor einem Jahr sein.
Oder der Code wurde in den C++-Standard konvertiert, und in diesem Fall handelt es sich um einen Fehler in den Dokumenten. Jetzt werde ich meinen Kopf zusammenstecken, Kaffee trinken und es überprüfen.
 

Die Entwickler. Eine Erklärung ist erforderlich. Was soll man glauben? Die Unterlagen oder die Umsetzung? Wir haben bisher ein undefiniertes Verhalten.

@fxsaber, ich rate Ihnen nicht, es vor den offiziellen Erklärungen zu verwenden, falls sie es nehmen und korrigieren.

Grund der Beschwerde: