数学的な基底クラスと派生クラスを作り、いくつかの(1つか2つではなく)算術演算を再定義して仮想化し、その上で複雑な式(a = b + c だけではない)をテストする--これだけで、すべてがOPTIMALLYに行われていることの理解に近づくことができるのである。とりあえず、エントリーレベルでは推理しているんですね。
等価ポインタの比較を別の関数にすると、ボトルネックは1つだけ(!)になります。
class A {};
A *a = b; //однозначно присвоение указателю значения
a = b; //неоднозначно
というのも、現在のところ、ポインタに値を代入するための他の構文がないからです。一方、 a.operator=( b ) は、明示的に呼び出すこともできます。
インジケータでOnCalculate()が呼ば れたとき、spread[]配列にどのようなスプレッド値が渡されるか教えてください。キャンドルごとの最大値/最小値/平均値?
.dllを読み込む順番について質問がありました。宣言された場合
は逆順に読み込まれます。つまり、"Test2.dll "が 最初に読み込まれます。その差は歴然としているように思います。違いがあることがわかり、場合によっては(.dllの読み込み順序が決まっている)失敗することがわかりました。Test1.dll "をロードしました。
問題は、ロード順を順方向に変更することで、コードの観点からはより論理的になるのか、それともこの順方向が将来も変更されないことを保証するのか(逆順に調整したコードが突然動作しなくならないように)、ということである。現時点では、逆順になるようにコードを調整する必要があります。
ビルド1191。コンパイルエラー: コード生成エラー
その理由をどこで探せばいいのかもわからない。しかし、ビルド1162ではすべてOKです。
ビルド1191。コンパイルエラー: コード生成エラー
その理由をどこで探せばいいのかもわからない。しかし、ビルド1162ではすべてOKです。
そのコードをservicedeskに送信してください。
激しく分散していますね。1つのファイルにまとめてみることにします。
他のコード - 時間に注意してください - それはおそらく20倍大きいです
現在までに2例が確認されています。
1) bool &=演算(bool 式)において
2)シーケンスの初期 化に余分なカンマがある: val={ {...},{...},}.
最初のケースですが、私のコードにはこのような操作が非常に多くあります。 1159ビルドでは以前は問題がありませんでした。 いつ修正されるのでしょうか?
コード生成エラー
ソースコードをservicedeskに送りました:#1332553
そのコードをservicedeskに送信してください。
コード生成エラー
ポケットの中で説明したようなことにならないよう、くれぐれもご注意ください。以下の例で現在動作し、以前も動作したように、*なしでできる場合。
そうでない場合は、イノベーションを使い始める前に、すべてをロールバックするのが賢明かもしれません。トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
バグ、バグ、質問
A100, 2015.08.26 10:35
実際、あなたはシンプルでわかりやすいエントリーを提供しています。
に置き換えてください。そして、これは何のためでしょうか?と書けるようにが、ポインタの等価比較には特殊な関数を使うことができ、ポインタを使った他のすべての算術演算(加算、減算、乗算など)にはそれ自体意味がなく、オーバーロードができるという点でのみ興味深いものです。
数学的な基底クラスと派生クラスを作り、いくつかの(1つか2つではなく)算術演算を再定義して仮想化し、その上で複雑な式(a = b + c だけではない)をテストする--これだけで、すべてがOPTIMALLYに行われていることの理解に近づくことができるのである。とりあえず、エントリーレベルでは推理しているんですね。
等価ポインタの比較を別の関数にすると、ボトルネックは1つだけ(!)になります。
というのも、現在のところ、ポインタに値を代入するための他の構文がないからです。一方、 a.operator=( b ) は、明示的に呼び出すこともできます。他のコード - 時間に注意してください - それは20倍に成長している必要があります。
MQL5用の新しい最適化コンパイラです(MQL4には搭載されていません)。
より良いターゲットコードと、より長いコンパイル時間の代償を払わなければならないのです。数百行からなる長い関数の中には、最適化が非常に困難なものがあります。
これは、MQL5の新しい最適化コンパイラ(MQL4にはない)がどのように動作するかを示しています。
より良いターゲットコードを得るためには、より長いコンパイル時間を支払う必要があります。数百行からなる長い関数の中には、非常に頑固に最適化するものがあります。
この「高品質コード」の代償は大きすぎるのではないでしょうか。 比較的小さな性能向上のために、コンパイル速度を何十倍も遅くするとは......。多くの場合、この利得はあまり重要ではなく、コンパイル時間を長くすることはプログラマーにとって拷問に等しいからです。
コンパイルオプションに "Debug "と "Release "を設けた方が良いのでは?