エラー、バグ、質問 - ページ 2163 1...215621572158215921602161216221632164216521662167216821692170...3185 新しいコメント Renat Fatkhullin 2018.03.10 10:21 #21621 Комбинатор: MQLコンパイラはC++に匹敵するコードを生成すると言っておきながら、MQLの配列はまったく高速でないことが判明するなど、一般ユーザーから見ると奇妙に映るのです。マネージド/マネージド言語とは、明らかにアレイを厳密に制御しなければならないことを意味します。これなくして、言語の安全性は確保できない。 静的配列の 場合、制御はより単純で、コードオプティマイザの段階で部分的に簡略化することができる。ダイナミックアレイの場合、より多くの制御が必要であり、単純化することは困難です。 コードはC++の品質レベルで生成されますが、マネージドなものには確かにオーバーヘッドがあります。数学、ループ、その他はすべてC++レベルです。 Renat Fatkhullin 2018.03.10 10:26 #21622 Комбинатор:配列のインデックスは、せいぜいアセンブラの直接コマンド1つ分にしかなりません。マネージド言語では、定数 インデックスを持つ静的 配列のみ。つまり、オプティマイザが境界やバッファの有無を確認する必要がないと100%確信している場合です。 条件に違反した場合、buffer and bounds[s]チェックが表示されます。 これは、プログラミングをする際の基本的な知識です。 A100 2018.03.10 14:05 #21623 Vladimir Pastushak: オーバーロードされた関数がenumToStringを持つ場合、それを整数値で呼び出すと問題が発生する...私が注目しているのは、このhttps://www.mql5.com/ru/forum/1111/page1297#comment_1382986。 しかし、彼らは何も変えなかったので、テンプレート内の ::EnumToString は多くの場合役に立ちません。 Ошибки, баги, вопросы 2015.02.16www.mql5.com Общее обсуждение: Ошибки, баги, вопросы Vladimir Pastushak 2018.03.10 17:21 #21624 プロジェクトの 探求を続け、偶然に出会う #resource "\\Experts\\[Project 2018]\\Expert Name\\Resources\\img\\open_buy.bmp" resource name is too long '\Experts\[Project 2018]\Expert Name\Resources\img\open_buy.bmp' CPanel.mqh 6 1 限られた時間の中で、なぜプロジェクトが必要なのでしょうか? プロジェクトはプロジェクトです!1000枚の画像、サウンド、ヘルプファイルがあるかもしれないのに、すべてを1つのフォルダに入れなければならないのですか? 私は、ディレクトリ内の混乱のファンではない、品質の多くはあなたの頭の中だけでなく、どこにでも順序であるべきである書くために... Artyom Trishkin 2018.03.10 18:32 #21625 A100:私が注目していたのは、このhttps://www.mql5.com/ru/forum/1111/page1297#comment_1382986 しかし、何も変更されなかったので、テンプレート内の ::EnumToString は多くの場合役に立たない。fxsaberの皆さん、こんにちは。 // Для enum-ов template <typename T> string EnumToString2( T Value ) { return(EnumToString(Value)); } // Для кастомных типов template <typename T> string EnumToString2( const T& ) { return(NULL); } // Для стандартных типов #define ENUMTOSTRING(A) string EnumToString2( A ) { return(NULL); } ENUMTOSTRING(int) ENUMTOSTRING(string) // ..... #undef ENUMTOSTRING #define EnumToString EnumToString2 template<typename T> string ETS( T t ) { return ( typename( t ) == "int" ? "OK" : ::EnumToString( t ) ); } enum ENUM { ENUM__ }; void OnStart() { ENUM i1 = ENUM__; Print( ETS( i1 )); //нормально int i2 = 0; Print( ETS( i2 )); //"ошибка компиляции" string i3 = NULL; Print( ETS( i3 )); //"ошибка компиляции" } Vladimir 2018.03.10 21:15 #21626 Комбинатор:ということは、単純な配列からインデックスで要素を取り出すのは、非常に高速な操作になるはずですよね? しかし、非検索はさらに高速です。どういうわけか、整数の代わりに浮動小数点数を使うと、プログラムの動作が1.5倍速くなることに気がつきました。私の場合、FPUコプロセッサがほとんどアイドル状態で、ほとんど整数を使用しているという事実で説明しました。 私の場合、FPUでSQRTが実行され、ALUが時間を解放し、それらが大きく並行して働き始めるということも考慮に入れることができます。 Renat Fatkhullin 2018.03.10 21:39 #21627 Vladimir Pastushak:プロジェクトの探求を続け、偶然に出会う #resource "\\Experts\\[Project 2018]\\Expert Name\\Resources\\img\\open_buy.bmp" resource name is too long '\Experts\[Project 2018]\Expert Name\Resources\img\open_buy.bmp' CPanel.mqh 6 1 限られた時間の中で、なぜプロジェクトが必要なのでしょうか? プロジェクトはプロジェクトです!1000枚の画像、サウンド、ヘルプファイルがあるかもしれないのに、すべてを1つのフォルダに入れなければならないのですか? 私は、ディレクトリ内の混乱のファンではない、品質の多くはあなたの頭の中だけでなく、どこにでも順序であるべきである書くために... コンパイル時に含まれ、名前付きオブジェクトとしてコードに入らないオブジェクトについては、部分的に修正します。EXファイル内では、名前付きリソースに64文字という物理的な制限があることです。 A100 2018.03.10 22:38 #21628 Artyom Trishkin:fxsaberからこんにちは。 上記のコードは、コンパイラの不具合に基づくものです void f( int ) { Print( 1 ); } //(1) void f( const int& ) { Print( 2 ); } //(2) void OnStart() { int i = 0; f( i ); //нормально ??? } 結果:1...で、なぜ2ではないのか? C++がコンパイル時にエラーを報告し、両方の関数が明らかに適合し、さらにMQLの現在の順序では関数(2)を明示的に呼び出す ことが全くできないため このエラーをなくすと、与えられたコードはほとんど動作しなくなります A100 2018.03.11 14:11 #21629 コンパイルエラー:ツリー最適化エラー class A { public: void f() {} }; typedef A* (*fn)(); #import "Test.ex5" fn g(); #import void OnStart() { g()().f(); } Vladimir Pastushak 2018.03.11 21:27 #21630 Renat Fatkhullin: コンパイル時に含まれ、名前付きオブジェクトとしてコードに取り込まれないオブジェクトを部分的に修正することになります。ポイントは、EXファイル内の名前付きリソースには64文字という物理的な制約があることです。商品説明の スペースがほとんどない。 3600文字は、大規模で本格的なプログラムには少なすぎる。 多くの人が納得してくれると思います。 プログラムを記述するためには、5000〜10000文字以上の文字数が必要です。せめてプログラム設定名のタブだけでも 司会者はいつでも水の除去を依頼することができます。 今、プログラムの説明文を書いているのですが、3600文字全部を設定の説明だけに使ってしまい、機能の半分も説明できていません......。 1...215621572158215921602161216221632164216521662167216821692170...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
MQLコンパイラはC++に匹敵するコードを生成すると言っておきながら、MQLの配列はまったく高速でないことが判明するなど、一般ユーザーから見ると奇妙に映るのです。マネージド/マネージド言語とは、明らかにアレイを厳密に制御しなければならないことを意味します。これなくして、言語の安全性は確保できない。
静的配列の 場合、制御はより単純で、コードオプティマイザの段階で部分的に簡略化することができる。ダイナミックアレイの場合、より多くの制御が必要であり、単純化することは困難です。
コードはC++の品質レベルで生成されますが、マネージドなものには確かにオーバーヘッドがあります。数学、ループ、その他はすべてC++レベルです。
配列のインデックスは、せいぜいアセンブラの直接コマンド1つ分にしかなりません。
マネージド言語では、定数 インデックスを持つ静的 配列のみ。つまり、オプティマイザが境界やバッファの有無を確認する必要がないと100%確信している場合です。
条件に違反した場合、buffer and bounds[s]チェックが表示されます。
これは、プログラミングをする際の基本的な知識です。
オーバーロードされた関数がenumToStringを持つ場合、それを整数値で呼び出すと問題が発生する...
私が注目しているのは、このhttps://www.mql5.com/ru/forum/1111/page1297#comment_1382986。
しかし、彼らは何も変えなかったので、テンプレート内の ::EnumToString は多くの場合役に立ちません。
プロジェクトの 探求を続け、偶然に出会う
#resource "\\Experts\\[Project 2018]\\Expert Name\\Resources\\img\\open_buy.bmp"
resource name is too long '\Experts\[Project 2018]\Expert Name\Resources\img\open_buy.bmp' CPanel.mqh 6 1
限られた時間の中で、なぜプロジェクトが必要なのでしょうか?
プロジェクトはプロジェクトです!1000枚の画像、サウンド、ヘルプファイルがあるかもしれないのに、すべてを1つのフォルダに入れなければならないのですか?
私は、ディレクトリ内の混乱のファンではない、品質の多くはあなたの頭の中だけでなく、どこにでも順序であるべきである書くために...
私が注目していたのは、このhttps://www.mql5.com/ru/forum/1111/page1297#comment_1382986
しかし、何も変更されなかったので、テンプレート内の ::EnumToString は多くの場合役に立たない。
fxsaberの皆さん、こんにちは。
ということは、単純な配列からインデックスで要素を取り出すのは、非常に高速な操作になるはずですよね?
プロジェクトの探求を続け、偶然に出会う
#resource "\\Experts\\[Project 2018]\\Expert Name\\Resources\\img\\open_buy.bmp"
resource name is too long '\Experts\[Project 2018]\Expert Name\Resources\img\open_buy.bmp' CPanel.mqh 6 1
限られた時間の中で、なぜプロジェクトが必要なのでしょうか?
プロジェクトはプロジェクトです!1000枚の画像、サウンド、ヘルプファイルがあるかもしれないのに、すべてを1つのフォルダに入れなければならないのですか?
私は、ディレクトリ内の混乱のファンではない、品質の多くはあなたの頭の中だけでなく、どこにでも順序であるべきである書くために...
fxsaberからこんにちは。
上記のコードは、コンパイラの不具合に基づくものです
結果:1...で、なぜ2ではないのか?
C++がコンパイル時にエラーを報告し、両方の関数が明らかに適合し、さらにMQLの現在の順序では関数(2)を明示的に呼び出す ことが全くできないため
このエラーをなくすと、与えられたコードはほとんど動作しなくなります
コンパイルエラー:ツリー最適化エラー
コンパイル時に含まれ、名前付きオブジェクトとしてコードに取り込まれないオブジェクトを部分的に修正することになります。
商品説明の スペースがほとんどない。
3600文字は、大規模で本格的なプログラムには少なすぎる。
多くの人が納得してくれると思います。
プログラムを記述するためには、5000〜10000文字以上の文字数が必要です。せめてプログラム設定名のタブだけでも
司会者はいつでも水の除去を依頼することができます。
今、プログラムの説明文を書いているのですが、3600文字全部を設定の説明だけに使ってしまい、機能の半分も説明できていません......。