Errori, bug, domande - pagina 2212

 

Cari sviluppatori, per favore chiarite, è normale che il compilatore non dia un avvertimento sulla conversione di tipo in una tale stringa?

const bool barsToStart = Bars( _Symbol, _Period, startTime, timeCurrent );
 
A100:

Se qui

(*) implica A::a = 2, non ::a = 2

allora S::q = S::z dovrebbe essere implicito anche lì, non S::q = ::z

Perché S::z sarebbe implicito lì, se l'espressione non è in una funzione dell'oggetto S, ma a livello globale.

Il livello globale è, cioè, implicito ::z - senza nessuno di questi.

 
Alexey Kozitsyn:

Cari sviluppatori, per favore chiarite, è normale che il compilatore non dia un avvertimento sulla conversione di tipo in una tale stringa?

Strano... Non mi dice nulla...

 
Georgiy Merts:

Questo è strano... Il mio non dice nulla...

È proprio così, non scrive nulla. E dovrebbe, credo...

 
Alexey Kozitsyn:

È proprio così, non scrive nulla. Ma dovrebbe, credo...

Vuoi dire che il risultato di int è convertito in bool?

Sì, in teoria, dovrebbe generare un avviso.

 
Georgiy Merts:

Vuoi dire che il risultato di int è convertito in bool?

Sì, dovrebbe dare un avvertimento.

Sì, la conversione implicita va senza preavviso.

 
Alexey Kozitsyn:

È proprio così, non scrive nulla. Ma dovrebbe, credo...

Dovrebbe. Posso indovinare perché non lo fa. Lo zero è assunto come falso, tutto ciò che non è zero è vero.

cioè.

bool b1 = 123; // true
b1 = 0; // false

Probabilmente con queste regole lo fanno, anche se di nuovo, penso che l'avvertimento dovrebbe essere

Scrivere nella SD.

 
Alexey Volchanskiy:

Scrivere sulla SD

Sì, l'ho fatto... ma nessuna risposta. In generale, i BOD funzionano in modo strano: io scrivo una domanda, la domanda viene accettata per essere presa in considerazione. E poi il silenzio. Perché dovrei presentare una domanda se non ho intenzione di rispondere? E così in ogni applicazione.

 
Alexey Kozitsyn:

Cari sviluppatori, per favore chiarite, è normale che il compilatore non dia un avvertimento sulla conversione di tipo in una tale stringa?

Risposta degli sviluppatori:

Какого предупреждения вы ждёте? 0 это false, не 0 - true.
Это обычная практика в логических выражениях

Devi stare più attento.

 
Alexey Kozitsyn:

Cari sviluppatori, per favore chiarite, è normale che il compilatore non dia un avvertimento sulla conversione di tipo in una tale stringa?

Bars vedere cosa restituisce e a cosa si sta cercando di equiparare.

const bool barsToStart = Bars( _Symbol, _Period, startTime, timeCurrent ) == 0 ? false : true;