Errori, bug, domande - pagina 1741

 
typename genera una stringa in fase di compilazione, ecco perché è necessario "tirare le code".


Volete ottenere il tipo effettivo dell'oggetto tramite puntatore?

Qualcosa come una funzione:

string GetPointerTypename(void *ptr);
 
Ilyas:
Il typename genera una stringa in fase di compilazione, ecco perché è necessario "tirare le code".


Volete ottenere il tipo di oggetto effettivo tramite puntatore?

Qualcosa come una funzione:

string GetPointerTypename(void *ptr);

Sì, qui.

Stanislav Korotky:
Vorrei renderlo più sottile. Ma come? In MQL,typename(this) nel metodo base virtuale restituisce la classe base. In C++typeid(*this).name() nel metodo virtuale di base restituisce la classe effettiva dell'oggetto.

 
fxsaber:
Questa è solo una caratteristica delle pubblicazioni di profilo?
È stato riparato questo pomeriggio. Ora sta succedendo di nuovo.
 

Non riesco a mettere insieme i pezzi.

int a=1;//a1
int b=2;//b1
int aa(int a, int b)
{
return(a+a+b+b);
}

uno degli a e b di ritorno dovrebbe essere esterno //a1 e //b1. Non passa attraverso questo.

 
Yuriy Asaulenko:

a + ::a + b + ::b

Ma in generale, si dovrebbe ricevere uno schiaffo per una tale pratica.

 
Комбинатор:

a + ::a + b + ::b

Ma in generale, si dovrebbe essere puniti per una tale pratica.

Grazie) Non ho un libro C++ a portata di mano. Ma visivamente ricordo che sembrava avere questo dentro. Devo essermene dimenticato. Non l'ho mai usato per questo scopo. Bene, ora devo cambiare la variabile ovunque - ora.

Beh, in realtà questo è ciò per cui è stato progettato. Quindi ti sbagli. Non bisogna abusarne.

 

Quando si trascina(CHARTEVENT_OBJECT_DRAG) un oggetto grafico OBJ_CHART con il mouse, l'intervallo di visualizzazione corrente in OBJ_CHART viene resettato.

Si prega di rimuovere questo reset nella prossima build.

 

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

Bug, bug, domande

Ilyas, 2016.10.18 09:24

Perché non includete la lista di inizializzazione nel corpo? In senso figurato, un oggetto classe (compreso il suo questo) è inizializzato sul segno ':'
Perché allora?
class A
{
  const int a;
  
  A() : this.a(0) {} // 'this' - struct member undefined && '.' - member(s) initialization expected
//  A() : a(this.a) {} // no problem
};
 

Identificatore

Descrizione

Tipo di proprietà

COMMENTO GRAFICO

Testo del commento sul grafico

stringa

NOME_ESPERTO GRAFICO

Nome dell'Expert Advisor lanciato sul grafico con il chart_id specificato

stringa

NOME_SCRITTORE GRAFICO

Nome dello script che viene lanciato sul grafico con il chart_id specificato

stringa

Aggiungere in grassetto di sola lettura nella Guida.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Свойства графиков - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Molto tempo speso per la localizzazione. EA

class CHARTOBJECT
{
public:
  const string Name;
  const long Chart;

  int GetSubWindow( void ) const
  {
    const ulong StartTime = GetMicrosecondCount();
    
    const int Res = ObjectFind(this.Chart, this.Name);
    
    Print((string)(GetMicrosecondCount() - StartTime) + " mcs.");

    return(Res);
  }

  CHARTOBJECT( const ENUM_OBJECT object_type, const long chart_id = 0  ) :
               Name((string)MathRand()), Chart(chart_id)
  {
    ObjectCreate(this.Chart, this.Name, object_type, 0, 0, 0);
  }

  ~CHARTOBJECT( void )
  {
    if (this.GetSubWindow() != -1)
      ObjectDelete(this.Chart, this.Name);
  }
  
  long GetProperty( const ENUM_OBJECT_PROPERTY_INTEGER Property, const int Modifier = 0 ) const
  {
    return(ObjectGetInteger(this.Chart, this.Name, Property, Modifier));
  }
};

CHARTOBJECT Chart(OBJ_CHART);
CHARTOBJECT* Bitmap;

void OnInit()
{
  Bitmap = new CHARTOBJECT(OBJ_BITMAP_LABEL, Chart.GetProperty(OBJPROP_CHART_ID));
}

void OnDeinit( const int Reason )
{
  Bitmap.GetSubWindow();
  
  delete Bitmap;
}

Dopo averla rimossa dal grafico, ci sarà un output di log

2016.10.22 19:35:51.362 Test9 (AUDCAD,M1)       Abnormal termination
2016.10.22 19:35:48.351 Test9 (AUDCAD,M1)       3005619 mcs.

In tre secondi è stato rimosso e fuori. Riprodotto solo nella versione di rilascio. Durante il debug tutto è normale.

Per favore, confermate con voi stessi. In modalità script, giocare non ha funzionato. Solo l'EA.