错误、漏洞、问题 - 页 3106

 

矛盾。

struct X {
    X() : i( 1 ) {}
    const int i;
};
void OnStart()
{
    X x1[1] = {};    //(1) нормально ???
    X x2[1];
    ZeroMemory( x2 );//(2) Error: 'x2' - not allowed for objects with protected members or inheritance
}

1)和(2)之间的根本区别是什么?

 
A100 #:

矛盾。

1)和(2)之间的根本区别是什么?

1是声明时的初始化,2是(一般说来)变化。

 
JRandomTrader #:

1是声明时的初始化,2是(在一般情况下)修改。

如果x1[0].i可以为零,为什么 x2[0].i不能?怎么会更糟呢?

下面是一个简化的矛盾例子。

void OnStart()
{
    X x1[1] = {};    //(1) нормально ???
    X x3 = { 0 };    //(3) Error: 'x3' - cannot be initialized with initializer list
}
 
A100 #:

下面是一个简化的矛盾例子。

这里还有一个。

void OnStart()
{
    X x1[1] = {};    //(1) нормально ???
    X x2[1];
    Print( x1[0].i == x2[0].i );
}

结果:假

鉴于此。

关于交易、自动交易系统和交易策略测试的论坛

虫子,虫子,问题

A100, 2021.11.16 13:40

struct X {
    X() : i( 1 ) {}
    const int i;
};
 
错误:软件难以理解地计算了一笔365₽->338₽(40股)的卢布交易,而不是-1020₽,显示损失148美元。
如果有人知道,请告知可以做什么。
附加的文件:
 

来自专家的帮助:

struct Y
  {
   int               i;
                     Y(const Y & p): i(p.i) {}
  };

void OnStart()
{
  Y y(y);               // UB?
}

它是UB还是什么?

 
内部编译器错误
union X {
    struct XX {char i;} s;
    int i;
} x[1] = {};
void OnStart() {}
第5名与{}。
 
mktr8591 #:

它是UB还是什么

这是一个编译器缺陷--理论上,在编译时应该有一个错误,因为在MQL中

关于交易、自动交易系统和策略测试的论坛

错误, 漏洞, 问题

A100, 2020.09.30 16:54

这与你自己的概念相矛盾,即当声明被最终确定时,一个变量被认为是被声明的。你为什么一开始就发明了它?如果在一种情况下是这样,在另一种情况下是不同的

如果你像这样重写OnStart。

void OnStart()
{
  Y y = y; //Error: 'y' - undeclared identifier
}
那么,编译器就会根据以下理论做出反应
 
A100 #:

这是一个编译器的缺陷--在理论上,在编译阶段应该有一个错误,因为在MQL中

如果你像这样重写OnStart。

那么编译器就会根据理论做出反应

正是如此。

谢谢你!

 

有没有人想出如何使用标准库来提高面板的优先级?

我从这里 的例子中提取了代码。

在动画中你可以看到,如果你创建一个面板,然后创建一条趋势线,并把它放在按钮下面,对按钮的点击就会捕捉到线条的点击事件。该按钮被忽略了。

试着这样设置按钮的优先级:m_button3.ZOrder(100) - 但没有帮助。

还有一个CWnd::BringToTop()方法,我为整个面板和一个按钮分别设置了这个方法。但不太清楚它应该如何工作,如何正确调用它并设置这个优先级。调用这个方法时解对显示,m_id总是等于-1,虽然从注释来看是对象ID,但m_name似乎显示了对象的参与。


如果有人有解决办法,请告知在哪里挖掘。