Fehler, Irrtümer, Fragen - Seite 1919

 

Können Sie mir sagen, ob mql5 die Fehlerausgabe während der Kompilierung wie in php kommentieren kann?

 
Anton Ohmat:

Können Sie mir sagen, ob mql5 die Fehlerausgabe während der Kompilierung wie in php kommentieren kann?

GetLastError()? Wenn nicht, welches Format würden Sie gerne sehen?
 
Alexey Kozitsyn:
GetLastError()? Wenn nicht, welches Format würden Sie sich wünschen?

Nun, in php gibt es @variable = ....

und die Fehlerausgabe wird kommentiert - praktisch bei einfachen Fehlern zur Kompilierzeit (z.B. bei Typinkonsistenzen bei der Konvertierung in String)

 
Anton Ohmat:

Nun, in php gibt es @variable = ....

und die Fehlerausgabe wird kommentiert - praktisch bei einfachen Kompilierfehlern (z. B. bei Typinkonsistenzen bei der Konvertierung in String)

In mql müssen Sie den Fehlercode explizit überprüfen (zur Laufzeit), während zur Kompilierzeit eine Warnung mit einem möglichen Typkonvertierungsfehler erscheint.
 
Alexey Kozitsyn:
In mql müssen Sie den Fehlercode explizit überprüfen (zur Laufzeit), und zur Kompilierzeit erscheint eine Warnung, wenn ein möglicher Fehler bei der Typkonvertierung vorliegt.
Ich möchte also die Fehlerausgabe zur Kompilierzeit teilweise deaktivieren.
 
Anton Ohmat:
So möchte ich die selektive Fehlerausgabe zur Kompilierzeit teilweise deaktivieren.
Es besteht keine Notwendigkeit, irgendetwas zu deaktivieren. Es treten keine Fehler auf, wenn die Typen korrekt aufeinander abgebildet sind.
 
Anton Ohmat:
Ich möchte also die Fehlerausgabe zur Kompilierzeit teilweise deaktivieren.
Um zu vermeiden, dass bei der Kompilierung Fehler und Warnungen angezeigt werden, müssen Sie diese nur im Code korrigieren. Machen Sie sich nichts vor, Sie wollen mit Geld arbeiten.
 

Zweideutigkeit

struct A {
        int f() { return B::i; } //error: 'i' - protected member access error
};
struct B : A {
protected: //(*) или например private:
        static int i;
};
int B::i;
Gleichzeitig, ohne Schutz: (*) - kompiliert ohne Fehler

Erwartet: gleiches Verhalten mit und ohne protected: (*) string

Optional: C++ kompiliert nicht beide Fälle

 
A100:

Zweideutigkeit

Zur gleichen Zeit, ohne die geschützte: (*) Zeichenfolge - es kompiliert ohne Fehler

Erwartet: Gleiches Verhalten mit und ohne protected: (*) string

Der "Vorgänger" braucht die geschützten/privaten Felder nicht zu sehen.

Wenn Sie wollen, dass B::f() in A::f() definiert wird, müssen Sie in diesem Fall etwas erfinden.
 
A100:

Optional: C++ kompiliert nicht beide Fälle

Wenn Sie Folgendes hinzufügen

Struktur B;

am Anfang des Codes sollte einer der beiden Fälle kompiliert werden. Vielleicht ist der Mql-Compiler so schlau, dass er die fehlende Vorwärtsdeklaration selbst hinzufügt?