エラー、バグ、質問 - ページ 1337

 
Vladimir Pastushak:

開発者はユーモアがないわけではありません。

ダウンロード」と、右や左にツリーを振るような音ですね。

揺れる」なら、木に例えることもできる。「右/左」→あなたもユーモラス(「右/左」の混同)
 
Artyom Trishkin:
揺れる」なら、木に例えることもできたはず:「右/左」→ユーモアもある(「右/左」の融合)。

ボートの "揺れ" ,

そして、 (右と左が融合した) 件は、 私のせいではなく、Firefoxの せいなのです。

 
プロジェクトフォルダに横たわるMEでファイルをコンパイルすると、Experts、Indicators、Scriptsの適切なフォルダにコンパイルされたファイルが作成されます。しかし、別のコンパイラーでコンパイルすると、このようなことは起こりません。コンパイルされたファイルは、ソースのあるフォルダーに作成されます。そのようなものなのでしょうか、それとも適切なキーを使用すべきなのでしょうか?
 

キャラクターについて BR-8.15とBR-10.15の不具合、その他のBR期間は問題なし。

ビルド 1150 リアルオープニング win7 x64 max

トレーラー内の動画ファイル.mp4。

+ 期間M1について(例)

ボタン "autoscroll chart to end with arrival of new ticks "を押すと、チャートは最初に移動します。

そして、「END」キーを押すと、チャートは一瞬だけ最後に移動し、再び-最初に移動します。

ファイル:
br-bag.zip  7609 kb
br-bag2.zip  3720 kb
 
Alexey Navoykov:

今まであまり気にしていなかったのですが、クラスオブジェクトの大きな配列を扱うときに、メモリ消費が大きすぎることに気づきました。 sizeof()で確認したところ、完全に空のクラスは16バイトを占めます。 さらに、ここのクラスは管理されていることを考慮して、ポインタごとに8バイト追加します。 合計24バイトです。 むしろ少し多すぎですね。

ドキュメントに目を通し、そこに書かれていることを見てみました。

問題は、単純なクラス(継承に関与しないクラス)については、コンパイル段階ですべてが分かっているので、なぜ仮想関数 表が必要なのか、ということである。

その中のメソッドは仮想メソッドと同じように呼ばれ、テーブルを経由したアクセスのリダイレクトが追加されていることがわかった。 そして、賞賛されたコンパイラの最適化はどこにあるのか? この後、C++との性能比較はどのように述べればいいのか?

仮想メソッドのみがテーブルを介して呼び出され、私の発言はMQLコンパイラーに対してのみ当てはまるわけではありません。
また、MQLでは、一部の仮想コールは、テーブルを介さず、通常の関数呼び出しとして実行されます。
Renatが書いたように、MQLのクラスは常に仮想テーブルを持っており、8バイト+8バイトのメタ情報を取ります。
 
Vladimir Pastushak:

開発者はユーモアがないわけではありません。

ダウンロード」と、右や左にツリーを振るような音ですね。

ありがとうございます。「ダウンロード中」に訂正しました。
 
Ilyas:
仮想メソッドのみがテーブルを介して呼び出されるため、強調した仮定は正しくありません。
また、MQLでは、一部の仮想呼び出しは、テーブル経由ではなく、通常の関数呼び出しとして行われます。
Renatが書いたように、MQLのクラスは常に8バイト+8バイトのメタ情報を持つ仮想テーブルを持っています。
とにかく、誰からも継承されず、したがって仮想化にも参加しない単純なクラスが、なぜテーブルを必要とするのかを明らかにしてください。 Renat は仮想デストラクタに言及しましたが、私たちのケースでは仮想化するものは何もありません。デストラクタは1つだけなので、これもインライン化できますよね。 これで、メタデータは8バイトしか残りません。
 
Alexey Navoykov:
回答ありがとうございます。しかし、誰からも継承されず、したがって仮想化にも参加しない単純なクラスが、なぜテーブルを必要とするのか説明してください。 Renatは仮想デストラクタについて言及しましたが、この場合、仮想化するものは何もありません。デストラクタは1つだけなので、これもインライン化できますよね。そうすれば、8バイトのメタデータしか残りません。
クラスが継承されない場合、そのデストラクタは通常の非仮想関数として呼び出され、インライン化の条件を満たしていればインライン化されます。

ランタイムシステム(MQLプログラム環境)は、クラスが少なくとも16バイトを占有することを前提に構築されています。
 
プロジェクトフォルダに横たわるMEでファイルをコンパイルすると、Experts、Indicators、Scriptsの適切なフォルダにコンパイルされたファイルが作成されます。しかし、別のコンパイラーでコンパイルすると、このようなことは起こりません。コンパイルされたファイルは、ソースのあるフォルダーに作成されます。そのようなものなのでしょうか、それとも適切なキーを使用すべきなのでしょうか?
 

ビルド 854 VIN 10 64 X

ビジュアライゼーション機能を持つEAをテスト する際、テスト中の作業ウィンドウ以外に以前に開いていたウィンドウを閉じようとすると、テストが中断される ...

マウスの中ボタンとコンテキストメニューで閉じる ...