Fehler, Irrtümer, Fragen - Seite 2954

 
MetaQuotes:

Bitte aktualisieren Sie auf die Beta-Version 2775.

Dies wurde behoben.

//+------------------------------------------------------------------+
void OnStart()
  {
   struct s_My
     {
      int            a;
      double         b;
      long           c;
     } my1;

   my1.a=33;
   my1.b=44.44;
   my1.c=-55;


   Print(my1.c);
  }


Es gibt auch diese

 
MetaQuotes:

Bitte aktualisieren Sie auf die Beta-Version 2775.

Dies wurde behoben.

Vielen Dank, das hat geholfen. Aber in dieser Beta-Version kann der visuelle Tester nicht ausgeführt werden, nur für den Fall.

up: gibt es keine Funktion, um von der Beta-Version zur Release-Version zurückzukehren? das wäre praktisch.

 

Kompilierungsfehler


Die Kompilierung war zuvor problemlos - kein Fehler

 
A100:

Kompilierungsfehler

Vorher war die Kompilierung in Ordnung - kein Fehler

Das hatte ich, als ich keinen Speicherplatz mehr hatte.

 
Vladimir Pastushak:

Das ist mir passiert, als ich keinen Speicherplatz mehr hatte.

Es gibt mehr als genug freien Speicherplatz - nach mehreren erfolglosen Versuchen habe ich die kompilierte Datei im gleichen Ordner unter einem anderen Namen gespeichert und alles war normal. Die .ex5-Datei der Vorgängerversion (Skript) selbst läuft ebenfalls problemlos - ohne Fehler

 
Kompilierungsfehler nicht behoben
template<typename T>
class A {
public:
        void f( int ) {}      //(1)
};
class B : public A<int> {
public:
        void f( int, int ) {} //(2)
};
void OnStart()
{
        B b;
        b.A<int>::f( 1 ); //Error: 'A' - undeclared identifier
}
 
A100:
Ein widersprüchliches Ergebnis:

Sie sind also über ULONG "hinausgegangen".

Print(string(ULONG_MAX));
2021.02.07 23:09:41.060 SFQ_data (Si-3.21,M1)   18446744073709551615
 
prostotrader:

Sie sind also "über" ULONG hinausgegangen

Ja, ich habe eine nicht offensichtliche Regel gefunden, die besagt, dass im Falle eines Überlaufs der Extremwert zurückgegeben wird.

 

Wenn Expert in Indicator umgewandelt wird, dann ändert sich nach der Neukompilierung zumindest das Standardsymbol im Navigatorfenster nicht sofort, sondern erst nach einem Neustart des Terminals. Das Menü Aktualisieren an der gleichen Stelle - hilft nicht

Voraussichtlich: sofort

 
A100:
Kompilierungsfehler nicht behoben
template<typename T>
class A
  {
public:
   void              f(int) {}        //(1)
  };

class B : public A<int>
  {
public:
   void              f(int, int) {}   //(2)
  };

void OnStart()
  {
   B b;
//--- да, жаль, что не работает именно так, как вы написали, но
//если очень надо чтобы заработало без предупреждений компилятора
//касательно вызова скрытого метода, то можно попробовать вот такой
//временный костыль, пока не исправят
   A<int>* a_1=dynamic_cast<A<int>*>(&b);
//--- или вот так
   A<int>*a_2=(A<int>*)&b;
   a_1.f(1);
   a_2.f(1);
  }


//--- либо совсем вот так
template<typename T>
class A
  {
public:
   void              f(int) {}        //(1)
  };
class B : public A<int>
  {
public:
   void              f(int, int) {}   //(2)
   void              f(int x) {A<int>::f(x);}
  };
void OnStart()
  {
   B b;
   b.f('х'/'з');
  }