Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 226

 
Aleksey Vyazmikin #:
Können Sie mir bitte sagen, wie ich alle Dateien in einem Verzeichnis kompilieren kann?
Klicken Sie im Navigator mit der rechten Maustaste auf das Verzeichnis -> "Kompilieren".
 
mktr8591 #:
Klicken Sie im Navigator mit der rechten Maustaste auf das Verzeichnis -> "Kompilieren".

Phänomenal!

Vielen Dank dafür!
 
Kommentare, die sich nicht auf dieses Thema beziehen, wurden nach "Alle Fragen von Anfängern in MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes" verschoben.
 

Bestimmung der Statik eines Arrays.

// Определяет static/dynamic nonconst-массива.
template <typename T>
bool IsStatic( T &Array[] )
{
  T ArrayTmp[];
  
  return(!ArraySwap(Array, ArrayTmp) || !ArraySwap(Array, ArrayTmp));
}


Anwendung.

void OnStart()
{
  int Array1[1];
  int Array2[];
  
  Print(IsStatic(Array1)); // true
  Print(IsStatic(Array2)); // false
}
 
fxsaber #:

Bestimmen Sie die Statik des Arrays.

Funktioniert ArrayIsDynamic nicht?

 
trader6_1 #:

Funktioniert ArrayIsDynamic nicht?

Das wusste ich nicht, danke.

 
Die Studie hat gezeigt, dass es möglich ist, eine freie Beschleunigung mit zwei Strings zu erreichen.
#include <RadixSort.mqh> // https://www.mql5.com/en/code/38763

#define ArraySort RadixSort // Замена ArraySort на RadixSort.
Natürlich nur, wenn eindimensionale Arrays verwendet werden.
 
Das ist ein interessantes Ergebnis.
template <typename T>
void f() { Print(__FUNCTION__); }

void OnStart()
{
//  f<int>(); // "void OnStart()"::f<int>
  
  {
    f<int>(); // "void OnStart()"::unnamed#2b753b62::f<int>
  }  
}
 
Einschränkung des Compilers.
void OnStart()
{
  {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
  {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
  {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
  {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
  {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
  {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
  {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
  // Количество вложений, начиная с которого компилятор будет выдавать "'{' - program is too complex"
  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
  }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}
}
 
fxsaber #:
Interessantes Ergebnis.

Wenn es viele Include-Dateien gibt und Sie wissen müssen, welche Funktion im assemblierten Quellcode höher ist, können Sie diese Methode verwenden.

template <typename T>
void f() { Print(__FUNCTION__); }

#define  MACROS_INIT f<int>();

void f2()
{
  MACROS_INIT  
}

void f1()
{
  MACROS_INIT  
}

void OnStart()
{
  f1();
  f2();
}


// f2 прописана выше f1 в собранном исходнике.
"void f2()"::f<int>
"void f2()"::f<int>