Errori, bug, domande - pagina 2895

 
A100:
Un errore di compilazione:

funzionava, ma all'inizio dell'anno hanno rotto i puntatori di funzione, sembra che il tuo codice dovrebbe ancora funzionare in MT4

funzionerà:

typedef void (*fn)();
void f() {}
fn g() { return f; }
void OnStart()
{
    fn func = g();
    func();
}

cioè ora dovete usare una variabile temporanea ( ora non potete nemmeno usare un array di puntatori!!!! )

A100:

C'è qualche contraddizione qui perché

Qual è ladifferenza di principio?

Uno degli amministratori ha scritto molto tempo fa come viene fatto il parsing, prima le variabili statiche, poi globalmente descritte, poi il corpo della funzione, parsing dall'alto verso il basso nel testo

... ma non è esatto ;)

 
Igor Makanu:

cioè ora dovete usare una variabile temporanea ( ora non potete nemmeno usare il puntatore array!!!! )

Ecco perché l'ho scritto, in modo che gli sviluppatori potessero fare a meno della temporanea

 
A100:

Ecco perché ho scritto, in modo che, se possibile, gli sviluppatori potessero farlo senza il temporaneo

@fxsaber ha scritto appena l'hanno trovato, probabilmente è passato un anno, beh, forse sarai ascoltato
 
Igor Makanu:

cioè ora dovete usare una variabile temporanea ( ora non potete nemmeno usare il puntatore array!!!! )

Ha un esempio per dimostrare che non si può?

 
A100:

Ha un esempio per dimostrare che non si può?

ha scritto un esempio:

typedef void (*fn)();
void f() {}
fn g() { return f; }
void OnStart()
{
//   fn ptr[10];                                                 //possible use of uninitialized variable 'ptr'
   fn ptr[10] = {0};                                             // OK
   for(int i = ArraySize(ptr) - 1; i >= 0; i--) ptr[i] = g();
   
//   for(int i = ArraySize(ptr) - 1; i >= 0; i--) ptr[i]();     //')' - expression expected
   
   for(int i = ArraySize(ptr) - 1; i >= 0; i--)                  // OK
   {
      fn func = ptr[i];
      func();
   }
}

Sono rimasto sorpreso, per qualche motivo genera un avviso fn ptr[10]; //possibile uso di una variabile non inizializzata "ptr

ora ho bisogno di capire come inizializzare i puntatori alle funzioni


era possibile in MQL5: ptr[i]();
 
Igor Makanu:

Si potrebbe usare in MQL5: ptr[i]() prima;

Sì... Mi ricordo

Forum sul trading, sistemi di trading automatico e test di strategia

Bug, bug, domande

A100, 2020.07.23 02:40

Errore durante la compilazione

typedef void (*fn)();
void OnStart()
{
        fn ff[ 1 ];
        ff[ 0 ](); //Error:: ')' - expression expected
} 

Ho avuto un bug nella build dell'anno scorso, tutto compilato e funzionato bene.

Forum per il trading, sistemi di trading automatico e test di strategia

Bug, bug, domande

A100, 2020.07.23 16:31

Ho disegnato la build 2085x32 dal vecchio stock - tutto si compila bene - potete provare voi stessi

 
È un errore di compilazione:
class EventChartCustom {
      EventChartCustom() {}
};
bool f()
{
    return (EventChartCustom( 0, 0, 0, 0, NULL ) ? true : false); //(1) Error: 'EventChartCustom' - wrong parameters count
}
ma questo va bene:
bool f()
{
    if (    EventChartCustom( 0, 0, 0, 0, NULL ) ) //(2) нормально
        return (true);
    else
        return (false);
}

Qual è la differenza fondamentale?

 
Un errore di compilazione:
class A {
      A() {}
};
void A() {} //(1) Error: 'A' - identifier already used
ma va bene così:
void A() {} //(2) нормально
class A {
      A() {}
};

Qual è la differenza fondamentale?

 
Regola empirica del mercato.
В Продуктах запрещен вызов любых DLL-библиотек, включая системные библиотеки Microsoft Windows.
Il prodotto Market ha il diritto di estendere la sua funzionalità se l'utente ha il permesso di usare la DLL?
 

Non ho trovato nessuna statistica sul Mercato. Quindi una domanda per i venditori di prodotti multipiattaforma.

Le versioni MT5 vendono davvero meglio della MT4?