错误、漏洞、问题 - 页 1974

 

编译错误

class B {};
class A {
template<typename T> void f() const {} //1
template<typename T> void f()       {} //2
        void g() const { f<B>(); } //error: 'f<B>' - call non-const method for constant object
};
而如果你把第(1)行和第(2)行对调,就可以了。有什么区别?
 

执行错误

class B {};
struct A {
template<typename T> void f()       { Print( __FUNCSIG__ ); } //2
template<typename T> void f() const { Print( __FUNCSIG__ ); } //1
        void g()       { f<B>(); }
};
void OnStart()
{
        A a;
        a.g();
}
因此,方法const(1)被调用,而不是const(2)。如果你把第(1)行和第(2)行调换一下(但不调换指数),就不会出现常数--正如预期的那样
 

你好!你能告诉我为什么一个简单的条件没有得到满足?

if ( Bid > High[iHighest(Symbol(),0,MODE_HIGH,30,1)] )

错误日志没有显示出来。我写了Comment(Bid);并注意到,当Bid变得比High[...]高时,它的评论就停止了。

而这种条件也得到了满足。

if ( Bid > High[10] )
 
giros:

你好,你能告诉我为什么最简单的条件没有得到满足。

错误日志没有显示出来。规定的评论(Bid);并注意到,当Bid变成超过High[...]时,其评论就会停止。

而这种条件也得到了满足。


请附上整个代码,在你所显示的内容中没有错误...

 
Vladimir Pastushak:

附上整个代码,你所展示的内容没有错误...

我尽可能地简化了代码以找到错误,错误恰恰在比较条件Bid>High[...]这一行。
这里是整个代码,即使没有执行,你也可以复制并检查它。

void OnTick()
  {
   if ( Bid > High[iHighest(Symbol(),0,MODE_HIGH,20,1)] )
      {int Buy = OrderSend(Symbol(),OP_BUY,1,Ask,30,0,0,NULL,12345,0,clrBlue);}
  }
 
giros:

我尽可能地简化了代码以找到错误,错误恰恰在比较条件Bid>High[...]这一行。
这里是所有的代码,即使它没有被执行,你也可以复制并检查它。


你希望得到什么结果呢?

 
giros:

我简化了代码,找到了错误。 错误在比较条件Bid>High[...]那一行。
这里是整个代码,即使没有执行,你也可以复制并检查它。


你的情况听起来像这样

如果买入价将高于过去20根蜡烛的最大高点,不包括零点柱。然后马不停蹄地开单。


如果你目前的 出价低于最大的高价,那么就不采取行动...

 
Vladimir Pastushak:

你在等待什么结果呢?

具体来说,在这种情况下,我在等待一个买入订单被打开。

一般来说,我在等待运算符{...}的执行。

 
giros:

具体来说,在这种情况下,我在等待一个买入订单被打开。

在一般情况下,我在等待--操作符{...}的执行。


仔细阅读你的病情

 
giros:

具体来说,在这种情况下,我在等待一个买入订单的开启。

在一般情况下,我在等待运算符{...}。


我有你的条件工作清楚,订单正在开...