Errori, bug, domande - pagina 2639
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
La chiave della modalità portatile è richiesta per caso?
Tutti i terminali si avviano manualmente?
A mano, sì, lo fanno tutti. Alla fine, è così che li ho avviati manualmente.
Il tasto della modalità portatile non cambia nulla in questo senso.
Il fatto è che MT4 lancia una finestra di autorizzazione e l'avvio del programma non è considerato completato.
Devi usare "start" nel file batch.
Tutto sommato, sembra che io abbia capito tutto.
Grazie per la vostra partecipazione!
Non hai ancora capito di cosa si tratta, probabilmente non leggi attentamente i miei post. Il mio appello è rivolto agli sviluppatori, non a voi. Non ho bisogno dei tuoi consigli da quattro soldi.
Calmati e non preoccuparti così tanto.
Ancora una volta sono convinto che le persone con un basso sviluppo cerebrale di solito hanno poca comprensione della civiltà.
Non riesci nemmeno a capire quello che ti viene detto da persone più competenti, e sei maleducato come un bambino dell'asilo che non ha nemmeno imparato a scrivere correttamente.
Tuttavia, è il lavoro sui progetti che ti permette di valutare le capacità del linguaggio e scoprire i suoi difetti e bug...
In precedenza, quando si lavorava su progetti MQL, l'informazione sui difetti (bug) era fornita nell'ordine della loro individuazione.
Ora abbiamo deciso di provare un nuovo approccio: lavorare fino a un difetto bloccante e poi fornire informazioni su tutti i difetti rilevati.
Si crea più volte un oggetto complesso avvolto con il tipo interno "C", ma si scopre che è un tipo di dati completamente diverso, forse "B", "int", qualsiasi cosa si voglia...
Mi ci è voluto molto tempo e sforzo per trovare e capire che il problema non è nel codice ma nel compilatore MQL. (C++ online:https://onlinegdb.com/H1R1fR5ML)
Presumibilmente, il problema è nel lavoro della cache della classe template "main_wrapper" durante la generazione del codice al momento della compilazione quando la classe interna "internal_wrapper" dalla classe template "A" viene passata come parametro per diversi tipi di dati (int, B*, B, C).
Quale primo tipo di dati è creato dalla classe template "main_wrapper<A<TEMPLATE_TYPE>::internal_wrapper>, tale tipo di dati sarà ulteriormente usato in tutti gli oggetti del template in futuro.
Un altro bug con la generazione del codice della classe del modello sarà fornito di seguito.
Un altro bug di MT5 (build 2316) con la generazione di codice di classe template quando si usa una classe interna.
C++ online:https://onlinegdb.com/HJkKXAqMU
Un altro difetto diMT5 (build 2316) relativo allaclasse interna è la mancanza di capacità di fare esplicitamente riferimento allo spazio dei nomi globale.
C++ online:https://onlinegdb.com/H14NF05G8
Un bug molto brutto che blocca ulteriori sviluppi.
Si crea più volte un oggetto complesso avvolto con il tipo interno "C", ma si scopre che è un tipo di dati completamente diverso, forse "B", "int", qualsiasi cosa si voglia...
Mi ci è voluto molto tempo e sforzo per trovare e capire che il problema non è nel codice ma nel compilatore MQL. (C++ online:https://onlinegdb.com/H1R1fR5ML)
Presumibilmente, il problema è nel lavoro della cache della classe template "main_wrapper" durante la generazione del codice al momento della compilazione quando la classe interna "internal_wrapper" dalla classe template "A" viene passata come parametro per diversi tipi di dati (int, B*, B, C).
Quale primo tipo di dati è creato dalla classe template "main_wrapper<A<TEMPLATE_TYPE>::internal_wrapper>, tale tipo di dati sarà ulteriormente usato in tutti gli oggetti del template in futuro.
Un altro bug con la generazione del codice della classe del modello sarà fornito di seguito.
È il modo giusto per farlo?
Grazie, in effetti l'introduzione di un parametro template fittizio, nel caso dell'esempio, aggira il problema.
Tuttavia, per quanto riguarda il progetto globale, le cose sono un po' più complicate: laclasse interna è stata usata come alternativa alla funzionalità typedef typename mancante per semplificare sia il processo di sviluppo che l'applicazione della classe contenitore finale.
Potrebbe valere la pena aspettare una correzione da parte degli sviluppatori.
Come ultima risorsa, tutte le dipendenze dovranno essere trascinate verso l'esterno, sperando che non ci sia un'ulteriore compilazione di successo con un comportamento indefinito a runtime.
Per riassumere la funzionalità interna della classe,
possiamo chiaramente dire che manca la funzionalità della dichiarazione typedef, almeno la sua forma primitiva, per usarla correttamente...
Quindi, invece di un codice C++ abbastanza compatto e comprensibile:
Dobbiamo costruire un recinto con #define e l'ereditarietà attraverso la classe interna:
Problemi quando si usa una classe interna come dichiarazione typedef:E qui ci sono molti più problemi di quanto possa sembrare a prima vista.
Si verificano problemi quando si usa #define come dichiarazione typedef:
Gli sviluppatori hanno aggiunto "operator= delete" per questo scopo.
Tuttavia, non sembra logico rompere il link di cancellazione/default, perché tutto deve essere scritto di nuovo manualmente.
Forse sto facendo qualcosa di sbagliato?