错误、漏洞、问题 - 页 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

是的,发现了一个不明显的规则,即在溢出的情况下,会返回极端值

 

如果Expert被转换为Indicator,那么在重新编译后,至少Navigator窗口中的标准图标不会立即改变,而是在重新启动终端后才改变。在同一地点的 "刷新 "菜单 - 没有帮助

预计:立即

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