Errori, bug, domande - pagina 2679
![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
2365 - il codice era cosparso di errori. Non ho ancora avuto il tempo di capirlo. Ho fatto un rollback a 2361 - era ok. In mq4 - stessa situazione.
Grazie per il messaggio, controllerò
Sembra essere nel passaggio dei parametri quando si chiama il costruttore della classe base.
Bug MT5 (build 2365) Errore di compilazione sulla chiamata implicita del costruttore alla classe che usa l'operatore di assegnazione, quando il puntatore che passa per riferimento è usato come argomento del costruttore.
Se il passaggio di un puntatore per riferimento è sostituito dal passaggio di un valore, tutto funziona.
Grazie per il post, risolto
Bug MT5 (build 2365) errore di compilazione quando si chiama il costruttore della classe base quando il parametro template della classe template è usato come classe base.
Nessun problema in MT5 (build 2363).
Possiamo vedere che ArrayResize per gli oggetti è più veloce ora.
Ancora una volta, la complessità di una parte della funzione ArrayResize è stata ridotta da logaritmo a zero
Grazie mille per aver velocizzato ArrayResize per la memoria riservata.
MT5 (build 2365) su un progetto reale std::vector::push_back è 1,5 volte più veloce della build precedente.
E il ritardo di std::vector:resize è diminuito da 2,2 volte a 1,45 volte.
build 2366, penso che le costanti non funzionino correttamente ora
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f1
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f2
2020.03.21 12:55:59.904 tst (EURUSD,H1) 1. 4
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f1
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f2
2020.03.21 12:55:59.904 tst (EURUSD,H1) 2. 5
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f1
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f2
2020.03.21 12:55:59.904 tst (EURUSD,H1) 3. 6
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f1
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f2
2020.03.21 12:55:59.904 tst (EURUSD,H1) 4. 7
se sostituite const con static , funzionerà come previsto - una chiamata a f1() e f2() durante l'inizializzazione di a e b
2020.03.21 12:58:03.496 tst (EURUSD,H1) A::f1
2020.03.21 12:58:03.496 tst (EURUSD,H1) A::f2
2020.03.21 12:58:03.496 tst (EURUSD,H1) 1. 4
2020.03.21 12:58:03.496 tst (EURUSD,H1) 2. 5
2020.03.21 12:58:03.496 tst (EURUSD,H1) 3. 6
2020.03.21 12:58:03.496 tst (EURUSD,H1) 4. 7
Se si scrive codice come questo, è un bug totale che non può essere catturato
build 2366, penso che le costanti non funzionino correttamente ora
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f1
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f2
2020.03.21 12:55:59.904 tst (EURUSD,H1) 1. 4
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f1
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f2
2020.03.21 12:55:59.904 tst (EURUSD,H1) 2. 5
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f1
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f2
2020.03.21 12:55:59.904 tst (EURUSD,H1) 3. 6
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f1
2020.03.21 12:55:59.904 tst (EURUSD,H1) A::f2
2020.03.21 12:55:59.904 tst (EURUSD,H1) 4. 7
se sostituite const con static , funzionerà come previsto - una chiamata a f1() e f2() durante l'inizializzazione di a e b
2020.03.21 12:58:03.496 tst (EURUSD,H1) A::f1
2020.03.21 12:58:03.496 tst (EURUSD,H1) A::f2
2020.03.21 12:58:03.496 tst (EURUSD,H1) 1. 4
2020.03.21 12:58:03.496 tst (EURUSD,H1) 2. 5
2020.03.21 12:58:03.496 tst (EURUSD,H1) 3. 6
2020.03.21 12:58:03.496 tst (EURUSD,H1) 4. 7
Questo è esattamente il modo in cui dovrebbe funzionare.
Se scrivete del codice in questo modo, è un bug totalmente non rilevabile.
Anche qui tutto è corretto.
Questo è esattamente il modo in cui dovrebbe funzionare.
L'anno scorso non ha funzionato così - ho testato appositamente i modificatori di cost
e sembra che@Ilyas abbia spiegato come eseguire un programma MQL, prima tutti i const e static sono inizializzati, non importa dove sono descritti, e poi i costruttori di classe sono chiamati
ok, con questa inizializzazione static / const - può ancora essere distribuito correttamente, ma il fatto che il modificatore const non garantisce che il compilatore controlli questo è molto inaspettato - il mio secondo esempio