Ошибки, баги, вопросы - страница 2954

 
MetaQuotes:

Обновитесь на бета-версию 2775, пожалуйста.

Это исправлено.

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


Есть ещё такое

 
MetaQuotes:

Обновитесь на бета-версию 2775, пожалуйста.

Это исправлено.

Спасибо, помогло. Но в этой бете тестер визуальный не удаётся запустить, на всякий случай сообщаю.

up: а функции отката с беты на релизную не предусмотрено? было бы удобно.

 

Ошибка при компиляции


А раньше все нормально компилировалось - без ошибки

 
A100:

Ошибка при компиляции

А раньше все нормально компилировалось - без ошибки

У меня такое было когда места на диске закончилось.

 
Vladimir Pastushak:

У меня такое было когда места на диске закончилось.

Свободного места более чем достаточно - после нескольких неудачных попыток - сохранил компилируемый файл в той же папке под другим именем и все нормализовалось. Сам .ex5 файл предыдущей версии (скрипт) выполняется также нормально - без ошибок

 
Ошибка при компиляции не исправлена
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:
Противоречивый результат:

Так Вы "вылезли* за пределы ULONG

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

Так Вы "вылезли* за пределы ULONG

Да, нашел неочевидное правило, что в случае переполнения возвращается экстремальное значение

 

Если Эксперт преобразовать в Индикатор, то после перекомпиляции, по крайней мере стандартная иконка в окне Навигатор меняется не сразу, а только после перезагрузки Терминала. Меню Обновить там же - не помогает

Ожидалось: сразу

 
A100:
Ошибка при компиляции не исправлена
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('х'/'з');
  }
Причина обращения: