Erros, bugs, perguntas - página 2954

 
MetaQuotes:

Por favor actualize para a versão beta 2775.

Isto foi corrigido.

//+------------------------------------------------------------------+
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);
  }


Há também este

 
MetaQuotes:

Por favor actualize para a versão beta 2775.

Isto foi corrigido.

Obrigado, ajudou. Mas neste beta o testador visual não pode ser executado, só por precaução.

para cima: não há função para retroceder do beta para o release? que seria útil.

 

Erro de compilação


Compilou multa antes - sem erro

 
A100:

Erro de compilação

Estava a compilar tudo bem antes - sem erros

Tive isso quando fiquei sem espaço em disco.

 
Vladimir Pastushak:

Isto aconteceu-me quando fiquei sem espaço em disco.

Há espaço livre mais do que suficiente - após várias tentativas infrutíferas gravei o ficheiro compilado na mesma pasta com um nome diferente e tudo estava normal. O próprio ficheiro .ex5 da versão anterior (script) também corre bem - sem erros

 
Erro de compilação não corrigido
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:
Um resultado contraditório:

Por isso, "foi além" do ULONG

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

Então "foi além" do ULONG

Sim, encontrou uma regra não óbvia que em caso de transbordo, o valor extremo é devolvido

 

Se Expert for convertido em Indicador, então depois de recompilar, pelo menos o ícone padrão na janela Navigator não muda imediatamente, mas apenas depois de reiniciar o Terminal. O menu Actualizar no mesmo local - não ajuda

Esperado: imediatamente

 
A100:
Erro de compilação não corrigido
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('х'/'з');
  }