Errori, bug, domande - pagina 2645

 
Stanislav Korotky:

Sì, tutta la sintassi MQL sarà scartata lì. Finora la compilazione dei sorgenti fissa sotto le nuove build. Aggiungerò lo zip.

È possibile far cadere tutta la gerarchia dei file nella sandbox senza zip.

 
fxsaber:

È possibile rilasciare l'intera gerarchia di file nella sandbox senza zip.

Si potrebbe, ma sarebbe necessario lo zip come opzione. Avete i sorgenti dell'articolo https://www.mql5.com/ru/articles/1971 adattati all'ultimo compilatore?

Работаем с ZIP-архивами средствами MQL5 без использования сторонних библиотек
Работаем с ZIP-архивами средствами MQL5 без использования сторонних библиотек
  • www.mql5.com
Однажды автора данной статьи привлекла интересная особенность функции CryptDecode, а именно — возможность распаковывать переданный ей ZIP-массив. Этот модификатор был введен разработчиками торговой платформы MetaTrader 5 для того, чтобы можно было распаковывать ответ некоторых серверов, используя стандартную функцию WebRequest. Однако из-за...
 
Stanislav Korotky:

Si potrebbe, ma una zip come opzione sarebbe richiesta. Avete i sorgenti dell'articolo https://www.mql5.com/ru/articles/1971 adattati all'ultimo compilatore?

Sì, uso unzip. Ecco una versione funzionante.

 
fxsaber:

Sì, uso la decompressione. Ecco una versione funzionante.

Mi rimane della spazzatura nell'esempio zippato:

2020.02.12 21:54:06.620 ZipTask1 (EURUSD,D1)    21 leaked strings left
2020.02.12 21:54:06.620 ZipTask1 (EURUSD,D1)    21 undeleted objects left
2020.02.12 21:54:06.620 ZipTask1 (EURUSD,D1)    21 objects of type KeyValuePair left
2020.02.12 21:54:06.620 ZipTask1 (EURUSD,D1)    2184 bytes of leaked memory

Avvitato al mio script - stessa cosa - sembra essere nella libreria zip.

PS. Ho scoperto che è in Dictionary.mqh

 
Stanislav Korotky:

Mi rimane la spazzatura come esempio di lavoro con le zip:

Avvitato al mio script - stessa cosa - sembra essere nella libreria zip.

PS. Ho scoperto che è in Dictionary.mqh

C'è uno stile di codice boilerplate. Significa che non ho avuto problemi perché ho usato solo alcune delle funzionalità.

 

Perché non posso fare un modello come questo?

struct A
  {
   int               i;
   double            d;
  };

template<typename T>
T f(int value)
  {
   T result;
   return(result);
  }
//+------------------------------------------------------------------+
void OnStart()
  {
   A a;
   int i = 1;
   a = f(i);
  }
//+------------------------------------------------------------------+

template mismatch

'f' - non può applicare il modello

vedere la dichiarazione di "f

'f' - parametro passato come riferimento, variabile attesa

'f' - parametro passato come riferimento, variabile attesa

 

Ho qualche problema con il repository. Invia alcuni file al repository senza problemi, ma alcuni non fanno nulla:

E soprattutto, non c'è nessun file mql5.storage nella cartella \MQL5\ per cancellarlo.


Dove si trova ora?

 
Igor Makanu:

Perché non posso fare un modello come questo?

Perché sembra che tu abbia un'idea completamente sbagliata di come funzionano i template.

   a.i = f<int>(i);

Il "miracolo" che volevi non accadrà.

 
Igor Makanu:

Perché non posso fare un modello come questo?

Perché il template emette solo tipi per parametro, non per valore di uscita.

 
fxsaber:

Perché sembra che tu abbia un'idea completamente sbagliata di come funzionano i template.

Il "miracolo" che volevi non accadrà.

come il compilatore converte i modelli posso immaginare, niente di nuovo, funziona allo stesso modo?

struct A
  {
   int               i;
   double            d;
  };

template<typename T>
void f(int value,T &result)
  {
   T tmp;
   result = tmp;
  }
//+------------------------------------------------------------------+
void OnStart()
  {
   A a;
   int i = 1;
   f(i,a);
  }
//+------------------------------------------------------------------+
Andrei Trukhanovich:

perché il template emette solo tipi per parametri, ma non per valore di uscita.

Capisco, speravo di aver trascurato qualcosa.

Ok, non è critico, funzionerà tramite i parametri