エラー、バグ、質問 - ページ 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(2)の代わりにconst(1)メソッドが呼び出される。(1)と(2)の行を入れ替えると(インデックスは入れ替えない)、constにならない - 予想通り
 

こんにちは!単純な条件が満たされない理由を教えてください。

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:

具体的には、この場合、私は買い注文が開くのを待っているのです。

一般的なケースでは、私は演算子{...}を待っています。


私はあなたの条件が明確に動作している、順序が開いている...