Errori, bug, domande - pagina 1919

 

Puoi dirmi se mql5 può commentare l'output di errore durante la compilazione come in php?

 
Anton Ohmat:

Puoi dirmi se mql5 può commentare l'output di errore durante la compilazione come in php?

GetLastError()? Se no, quale formato vorresti vedere?
 
Alexey Kozitsyn:
GetLastError()? Se no, quale formato volete vedere?

bene in php c'è @variabile = ....

e l'output dell'errore è commentato - comodo per semplici errori in fase di compilazione (ad esempio per incongruenze di tipo durante la conversione in stringa)

 
Anton Ohmat:

bene, in php c'è @variabile = ....

e l'output dell'errore è commentato - comodo per semplici errori di compilazione (ad esempio per incongruenze di tipo durante la conversione in stringa)

In mql devi controllare il codice di errore esplicitamente (a runtime), mentre a tempo di compilazione un avviso apparirà con un possibile errore di conversione dei tipi.
 
Alexey Kozitsyn:
In mql devi controllare il codice di errore esplicitamente (a runtime), e a tempo di compilazione un avvertimento apparirà, se c'è un possibile errore nella conversione dei tipi.
Quindi, voglio disabilitare parzialmente l'output di errore in fase di compilazione.
 
Anton Ohmat:
Questo è il modo in cui voglio disabilitare parzialmente l'output di errori selettivi al momento della compilazione.
Non c'è bisogno di disabilitare nulla. Non ci saranno errori se i tipi sono correttamente mappati tra loro.
 
Anton Ohmat:
Quindi, voglio disabilitare parzialmente l'output di errore in fase di compilazione.
Per evitare di vedere errori e avvertimenti in fase di compilazione, basta correggerli nel codice. Non si inganni, lei vuole lavorare con i soldi.
 

Ambiguità

struct A {
        int f() { return B::i; } //error: 'i' - protected member access error
};
struct B : A {
protected: //(*) или например private:
        static int i;
};
int B::i;
Allo stesso tempo, senza protezione: (*) - compila senza errori

Atteso: stesso comportamento sia con che senza protetto: (*) stringa

Opzionale: C++ non compila entrambi i casi

 
A100:

Ambiguità

Allo stesso tempo, senza la stringa protected: (*) - si compila senza errori

Atteso: stesso comportamento sia con che senza protetto: (*) stringa

Il "predecessore" non ha bisogno di vedere i campi protetti/privati.

Se volete che B::f() sia definito in A::f(), dovrete inventare qualcosa in questo caso.
 
A100:

Opzionale: C++ non compila entrambi i casi

Se si aggiunge

struttura B;

all'inizio del codice, uno dei due casi dovrebbe compilare. forse il compilatore mql è così intelligente che aggiunge da solo la dichiarazione forward mancante?

Motivazione: