Errori, bug, domande - pagina 1760

 
Alexandr Bryzgalov:

perché mql5 ha reso majik solo positivo?

Amo i majiks negativi, amico (((

Dennis Kirichenko:
È una vera scocciatura con quelli non trasparenti... Non so chi sia stato guidato da cosa quando li ha creati. Sembra che diverse persone di diverse organizzazioni...

@Dennis Kirichenko, @Alexander Bryzgalov

non c'è ambiguità.

INT(LONG) prende solo metà dell'intervallo da UINT(ULONG)

laconversione del tipo funziona senza alcuna limitazione.

---

Potete controllare voi stessi.

long  a=-100

ulong ua=(ulong)a;

long b=(long)ua;

Print(a, " - ", ua, " - ", b);


Tutto funziona come dovrebbe.

possono essere utilizzati maghi negativi.

 
Vladimir Karputov:

Preso dalla classeCPositionInfo:

bool CPositionInfo::SelectByIndex(const int index)

quasi in mezzo al nulla )

questo esempio è molto atteso nella sezione aiuto:"informazioni sull'account"

 
Alexandr Bryzgalov:
quasi in mezzo al nulla )
È tutto relativo: se si lavora con la libreria standard un centinaio di volte al giorno, tutto risulta essere molto vicino :)
 
Vladimir Karputov:
È tutto relativo: se si lavora con la libreria standard un centinaio di volte al giorno, tutto risulta essere molto vicino :)
lavorare con il riferimento
 
o_O:

@Dennis Kirichenko, @Alexander Bryzgalov

non c'è ambiguità.

INT(LONG) prende solo la metà della gamma di UINT(ULONG).

laconversione del tipo funziona senza restrizioni

---

Potete controllare voi stessi.

long  a=-100

ulong ua=(ulong)a;

long b=(long)ua;

Print(a, " - ", ua, " - ", b);


Tutto funziona come dovrebbe

la magia negativa può essere usata

Vedi, a magic -1 compila e gira bene e lo trova usando questa magia.

Cominciavo a sentirmi frustrato.

anche così è silenzioso:

uint Magik=(-1);
ma non è ancora negativo, ma molto fottutamente positivo).
 

Alexandr Bryzgalov:

solo che non è ancora negativo, ma fottutamente positivo).

non cambia nulla. per int è -1
 
o_O:
non cambia nulla. per int è -1

Il punto è che se imposto magik -1 e poi lo confronto con zero, sarà maggiore di zero.

questo è il punto, dovremo confrontarlo con mezzo uint o convertirlo in int

è una questione di tecnica, ma comunque ...
 
Alexandr Bryzgalov:

Il fatto è che se imposto magik -1 e poi lo confronto con null, sarà più grande di null.

Ecco il problema, dovrete confrontarlo con mezzo uint o convertirlo in int

è una questione di tecnica, ma comunque ...

Se volete confrontare int con uint, il compilatore dovrebbe avvertirvi di tale confronto non valido.

è necessario in ogni caso eseguire la conversione allo stesso tipo. nessun ma

 

Ho un bug specifico legato all'ottimizzatore del compilatore, sembra.

Il codice di grandi dimensioni non funziona come dovrebbe - ritarda solo in Release (Debug - normale).

Dopo un giorno di ballo ho scoperto che se commento ObjectFind in un posto, i ritardi scompaiono.

Tuttavia, non sono riuscito a creare un campione di piccole dimensioni con lo stesso problema.

Ho provato a lasciare ObjectFind nel codice originale ma ad aggiungere una banale stampa prima/dopo di esso. E non ci sono stati ritardi! Quando tolgo Print, rallenta di nuovo!

Sembra che l'ottimizzatore del compilatore sia andato troppo oltre. Non ho idea di come scriverlo in CD, poiché non posso creare un piccolo codice di replay. E se ne scrivo uno grosso, sarà un inferno da pagare.

Cosa si può fare in questa situazione? Suppongo che sminuzzare un grande codice, purché sia riproducibile, sia un'opzione. Ma il progetto consiste in molte librerie. Mi ci è già voluto un giorno intero e non voglio più farlo.

 

Cari sviluppatori!

Si prega di rendere i tooltip del debugger per le variabili come nel wizard.

Quindi, passo il mio mouse su una variabile e un tooltip appare con il valore corrente di quella variabile. Sarebbe molto conveniente.