エラー、バグ、質問 - ページ 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にアップデートしてください。

これは修正されました。

ありがとうございます、助かりました。しかし、このベータ版ではビジュアルテスターは実行できないので、念のため。

上:ベータ版からリリース版へのロールバック機能はないのですか? それがあれば便利なのですが。

 

コンパイルエラー


以前は問題なくコンパイルできた - エラーなし

 
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を "超えた "わけですね。

はい、オーバーフローの場合は極値を返すという当たり前のルールを見つけました。

 

Expert を Indicator に変換した場合、再コンパイルしても、少なくとも Navigator ウィンドウの標準アイコンはすぐには変化せず、Terminal を再起動した後に変化します。同じ場所にあるリフレッシュ・メニューは役に立ちません。

予定:即時

 
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('х'/'з');
  }