汎用クラスライブラリ - バグ、説明、質問、使用上の特徴、提案 - ページ 27 1...202122232425262728293031323334...38 新しいコメント Andrey Pogoreltsev 2019.04.05 08:05 #261 Artyom Trishkin:私は、あなたが作成したすべてのオブジェクトの端末サブシステムによる自動削除とリストへのポインタを置くことを松葉杖と呼び、あなたはそれを行うためにオブジェクトの手動処理と松葉杖の作成を松葉杖と見なさないという意味で言ったのです。それは1.で言ったこととは別で、私があなたに言った最大の理由です。それも、同じ理由で。何のためにコレクションを作るのか、コレクションとオブジェクトの自動削除のためか)手動操作のことはまったく言っていないんです。どこから持ってきたんだよ(笑) STLを勉強すれば、私の言っていることが理解できるはずです。 Andrey Pogoreltsev 2019.04.05 08:09 #262 Igor Makanu:どのように正しくコピーするか、このテンプレートの例を教えてください。 ヘルプを参考にAddValueメソッドを書いてみたhttps://www.mql5.com/ru/docs/basis/types/classes頭を悩ませましたが、私の例で書いた以外の解決策はMQLにはないようです 正しいデータ保存の実装を見せてください。 あなたの場合、そういうことです。void AddValue (const T &value) { Tptr = new T(value); mlist.Add(Tptr); } しかし、この解決策はとにかく間違っている。通常の解決策としては、STLのようなものを使用します。あなたの場合、std::listです。 MQL5では制限されないと思うのですが。同じVSのSTLソースをMQLにトランスレートしてみることができます TheXpert 2019.04.05 08:10 #263 昔のモデレーターには、少なくとも2人のプロのプログラマーがいましたが、今は誰もいませんし、とても目立ちますね ) Igor Makanu 2019.04.05 08:32 #264 Andrey Pogoreltsev: あなたの場合は、そういうことですね。しかし、それはやはり間違った解決策です。通常のソリューションでは、STLのようなものを使用します。あなたの場合、std::listです。 MQL5では制限していないと思うのですが。STLソースコードをVSからMQLに変換することができます。もう一度言いますが、MQLはC++ではありません。 であり、MQLにおけるオブジェクトへのポインタは実際にはハンドルであり、C++におけるポインタは物理メモリアドレスである。 C++のライブラリをMQLに移植する意義は? Andrey Pogoreltsev 2019.04.05 08:41 #265 Igor Makanu:もう一度言いますが、MQLはC++ではありません。 であり、MQLにおけるオブジェクトへのポインタは実際にはハンドルであり、C++におけるポインタは物理メモリアドレスであるC++のライブラリをMQLに移植する意義は?ジェネリックスを使用して潜在的な問題を発生させるのではなく、デザイン パターンを適切に実装すること。 驚かれたでしょうが、OSのポインタも仮想なんです。それでも物理的なものに変換する必要がありますが、これはポインタとは全く別次元の作業です。 に1を移植することはできないでしょうが、ストリップダウンされたC++03を移植することはできるようになると思います。テンプレートやオペレーターのサポートが可能です。 Igor Makanu 2019.04.05 09:05 #266 Andrey Pogoreltsev: 1.意外かもしれませんが、OS用のポインタも仮想です。それでも物理的なものに変換する必要がありますが、それはポインターの扱いとは全く別の次元の話です。 2.に1を移植することはできませんが、ストリップダウンされたC++03を移植することはできます。テンプレートやオペレーターのサポートもあります。1.驚かない 2.まあ、ここからが本題なのですが、C++から集まって移植をしたとしても、疑問は残りますが、なぜ本家通りではないのでしょうか?- なんぼのもんじゃい MQLの標準ライブラリが あり、それを使用することで、少なくとも将来的に開発者によってサポートが提供されるという何らかの保証があります。 私はすでに2回ほど火傷しました - 私は数年前に書かれた記事からグラフィックコンポーネントを使用しました、それはDelphiコンポーネントでの作業と同じように使いやすいです、しかし私がより深刻なプロジェクトを実装しようと始めたとき、多くの質問と記事の作成者からの応答が得られなかったのです 著名なプログラマーの誰が言ったか覚えていないが、次のようなことを言った。「コードは美しくても、読みやすくてもいけない。 私の記憶違いでなければ、あなたはデータをリストに格納する構造を希望していました。- MQLプログラムのランタイムエラーを引き起こすか?- 話の流れで知りたくなりました 削除済み 2019.04.05 09:05 #267 Andrey Pogoreltsev: C++03は可能だと思います。テンプレートやオペレータのサポートが可能です。 そうですね、頑張ってください )) Alexey Navoykov 2019.04.05 13:02 #268 Igor Makanu:コードはきれいであったり、読みやすかったりする必要はなく、仕事をするために必要なものです。これは、あくまでも絞り込むまでの話です。 Alexey Navoykov 2019.08.16 02:44 #269 CLinkedListクラスのこのバグはすでに指摘したとおりだが、もう一度説明する。 リストの始点と終点は互いに閉じており、最後のノードのNextは最初のノードを指し、最初のノードのPreviousは最後のノードを指す。 その結果、標準の検索ループは無限ループに変わってしまうのである。 #include <Generic\LinkedList.mqh> void OnStart() { CLinkedList<string> list; list.AddLast("One"); list.AddLast("Two"); list.AddLast("Three"); int i=0; for (CLinkedListNode<string> *node= list.First(); node!=NULL; node=node.Next()) // Цикл бесконечно бегает по кругу { } } C#では,当然ながらこのようなことはない. 最後のノードのNextは0であり,最初のノードのPreviousも 同じである. 開発者が考案した「機能」なのかどうかはわかりませんが(その有用性はわかりませんが)、いずれにせよ、ライブラリの動作はオリジナルのものに対応するはずです。 Alexey Volchanskiy 2019.08.16 04:14 #270 Alexey Navoykov: CLinkedListクラスのこのバグはすでに指摘したとおりだが、もう一度説明する。 リストの始点と終点は互いに閉じており、最後のノードのNextは最初のノードを指し、最初のノードのPreviousは最後のノードを指す。 その結果、標準の検索ループは無限ループに変わってしまうのである。 C#では、当然のことながら、そのような無意味なことはありません。 最後のノードのNextは、最初のノードのPreviousと 同様、0です。 これが開発者が考案した「機能」なのかどうかはわかりませんが(私には何のメリットも感じられませんが)、いずれにせよライブラリの動作はオリジナルと一致するはずです。 また、一体どうなっているんだ?LinkedListの投稿を完全に削除している。ちょうど、ヨーロッパのどこかで、匿名のモデレーターが悪意を持って鼻で笑いながら、憎きロシア人の投稿を削除しているところです。なんだこのゴミ、書きたくなくなるじゃないか。 1...202122232425262728293031323334...38 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
何のためにコレクションを作るのか、コレクションとオブジェクトの自動削除のためか)手動操作のことはまったく言っていないんです。どこから持ってきたんだよ(笑)
STLを勉強すれば、私の言っていることが理解できるはずです。
どのように正しくコピーするか、このテンプレートの例を教えてください。
ヘルプを参考にAddValueメソッドを書いてみたhttps://www.mql5.com/ru/docs/basis/types/classes
頭を悩ませましたが、私の例で書いた以外の解決策はMQLにはないようです
正しいデータ保存の実装を見せてください。
しかし、この解決策はとにかく間違っている。通常の解決策としては、STLのようなものを使用します。あなたの場合、std::listです。
MQL5では制限されないと思うのですが。同じVSのSTLソースをMQLにトランスレートしてみることができます
あなたの場合は、そういうことですね。
しかし、それはやはり間違った解決策です。通常のソリューションでは、STLのようなものを使用します。あなたの場合、std::listです。
MQL5では制限していないと思うのですが。STLソースコードをVSからMQLに変換することができます。
もう一度言いますが、MQLはC++ではありません。
であり、MQLにおけるオブジェクトへのポインタは実際にはハンドルであり、C++におけるポインタは物理メモリアドレスである。
C++のライブラリをMQLに移植する意義は?
もう一度言いますが、MQLはC++ではありません。
であり、MQLにおけるオブジェクトへのポインタは実際にはハンドルであり、C++におけるポインタは物理メモリアドレスである
C++のライブラリをMQLに移植する意義は?
ジェネリックスを使用して潜在的な問題を発生させるのではなく、デザイン パターンを適切に実装すること。
驚かれたでしょうが、OSのポインタも仮想なんです。それでも物理的なものに変換する必要がありますが、これはポインタとは全く別次元の作業です。
に1を移植することはできないでしょうが、ストリップダウンされたC++03を移植することはできるようになると思います。テンプレートやオペレーターのサポートが可能です。
1.意外かもしれませんが、OS用のポインタも仮想です。それでも物理的なものに変換する必要がありますが、それはポインターの扱いとは全く別の次元の話です。
2.に1を移植することはできませんが、ストリップダウンされたC++03を移植することはできます。テンプレートやオペレーターのサポートもあります。
1.驚かない
2.まあ、ここからが本題なのですが、C++から集まって移植をしたとしても、疑問は残りますが、なぜ本家通りではないのでしょうか?- なんぼのもんじゃい
MQLの標準ライブラリが あり、それを使用することで、少なくとも将来的に開発者によってサポートが提供されるという何らかの保証があります。 私はすでに2回ほど火傷しました - 私は数年前に書かれた記事からグラフィックコンポーネントを使用しました、それはDelphiコンポーネントでの作業と同じように使いやすいです、しかし私がより深刻なプロジェクトを実装しようと始めたとき、多くの質問と記事の作成者からの応答が得られなかったのです
著名なプログラマーの誰が言ったか覚えていないが、次のようなことを言った。「コードは美しくても、読みやすくてもいけない。
私の記憶違いでなければ、あなたはデータをリストに格納する構造を希望していました。- MQLプログラムのランタイムエラーを引き起こすか?- 話の流れで知りたくなりました
Andrey Pogoreltsev:
C++03は可能だと思います。テンプレートやオペレータのサポートが可能です。
そうですね、頑張ってください ))
コードはきれいであったり、読みやすかったりする必要はなく、仕事をするために必要なものです。
これは、あくまでも絞り込むまでの話です。
CLinkedListクラスのこのバグはすでに指摘したとおりだが、もう一度説明する。 リストの始点と終点は互いに閉じており、最後のノードのNextは最初のノードを指し、最初のノードのPreviousは最後のノードを指す。 その結果、標準の検索ループは無限ループに変わってしまうのである。
C#では,当然ながらこのようなことはない. 最後のノードのNextは0であり,最初のノードのPreviousも 同じである.
開発者が考案した「機能」なのかどうかはわかりませんが(その有用性はわかりませんが)、いずれにせよ、ライブラリの動作はオリジナルのものに対応するはずです。
CLinkedListクラスのこのバグはすでに指摘したとおりだが、もう一度説明する。 リストの始点と終点は互いに閉じており、最後のノードのNextは最初のノードを指し、最初のノードのPreviousは最後のノードを指す。 その結果、標準の検索ループは無限ループに変わってしまうのである。
C#では、当然のことながら、そのような無意味なことはありません。 最後のノードのNextは、最初のノードのPreviousと 同様、0です。
これが開発者が考案した「機能」なのかどうかはわかりませんが(私には何のメリットも感じられませんが)、いずれにせよライブラリの動作はオリジナルと一致するはずです。
また、一体どうなっているんだ?LinkedListの投稿を完全に削除している。ちょうど、ヨーロッパのどこかで、匿名のモデレーターが悪意を持って鼻で笑いながら、憎きロシア人の投稿を削除しているところです。なんだこのゴミ、書きたくなくなるじゃないか。