エラー、バグ、質問 - ページ 1416 1...140914101411141214131414141514161417141814191420142114221423...3185 新しいコメント Alexey Navoykov 2015.10.24 10:33 #14151 Internal compiler error」はどのような場合に発生するのでしょうか? イリヤス: これまでに2件の事例を知っています。 1) bool &=演算(bool 式)において 2)初期化シーケンス に不要なカンマ: val={ {...},{...},}.これらのバグは新しいビルドではまだ修正されていないのでしょうか? 私のコンパイラはまだエラーを発生させるので、1159ビルドにこだわらざるを得ないのです。 coderex 2015.10.24 11:24 #14152 Renat Fatkhullin: テンプレートの要件は、すべてのメソッドをクラス記述の内部に配置し、ボディを外部に配置しないことです。スタックとキューコンテナを作成し、1ヶ月後にはクラステンプレートが登場し、すべてがうまく機能するようになりました。)もう一つの質問は、クラステンプレートについてです。2つのテンプレートクラスがあり、一方のクラスがもう一方のクラスを使用している場合、一方のテンプレートクラスから他方のテンプレートクラスへの型の移行はあるのでしょうか、ないのでしょうか? Renat Fatkhullin 2015.10.24 11:43 #14153 coderex:スタックとキューコンテナを作成し、1ヶ月後にはクラステンプレートが登場し、すべてがうまく機能するようになりました。)もう一つの質問は、クラステンプレートについてです。2つのテンプレートクラスがあり、一方のクラスがもう一方のクラスを使用している場合、一方のテンプレートクラスから他方のテンプレートクラスへの型の移行はあるのでしょうか、ないのでしょうか? 試してみてください。 coderex 2015.10.24 13:56 #14154 Renat Fatkhullin: 試してみてください。 試してみると何度かエラーが出るので、別の方法を考える...。 Alexey Volchanskiy 2015.10.24 20:24 #14155 Ilyas:На сегодня известно о двух случаях: 1) в операции bool &= (bool expression) 2) Лишняя запятая в инициализирующих последовательностях: val={ {...},{...}, }アレクセイ・ナヴォイコフ これらのバグは新しいビルドではまだ修正されていないのでしょうか? 私のコンパイラはまだエラーを出し、1159ビルドのままでなければなりません。 念のため、MT4 890でp.2に余分なカンマがあることを確認しましたが、エラーメッセージが 表示されるだけでした。 sigma7i 2015.10.25 11:03 #14156 CListの ソーティングをされた方はいらっしゃいますか?基本的にはCompareをオーバーライドする必要があります。でも、いつもベースクラスのCompareを呼んでいます。でも、うまくいかない、何が悪いんだろう...。簡単な例を作ってみました。class COperation : public CObject { public: double number; COperation(double p) { number = p;} virtual int Compare(const CObject *node,const int mode=0); }; int COperation::Compare(const CObject *node,const int mode=0) { const COperation *ppp = node; if(this.number > ppp.number) { return 1; } if(this.number < ppp.number) { return -1; } return 0; } void OnStart() { CList *list = new CList(); list.Add(new COperation(3)); list.Add(new COperation(4)); list.Add(new COperation(7)); list.Add(new COperation(2)); list.Add(new COperation(3)); list.Add(new COperation(9)); list.Add(new COperation(0)); list.Add(new COperation(1)); Print("After Sort"); COperation *node = list.GetFirstNode(); string numbers = ""; for(;node != NULL; node = node.Next()) { numbers += (string)node.number + " "; } Print(numbers); numbers = ""; list.Sort(0); Print("Before Sort"); node = list.GetFirstNode(); for(;node != NULL; node = node.Next()) { numbers += (string)node.number + " "; } Print(numbers); delete list; } ファイル: sort.mq5 3 kb Stanislav Korotky 2015.10.25 11:40 #14157 ネストされたテンプレート(MQL4)を処理する際、型渡しの不具合が見られますが、どなたかお気づきの方はいらっしゃいますか?具体的には、テンプレートメソッドを持つクラスAがあり、その内部で、メソッドが初期化されたのと同じ型Tを使ったテンプレートコンストラクタによって、別のクラスBのオブジェクトが生成されるのである。その結果、そのメソッド内部ではtypenameはintなど、渡された型を正しく定義しますが、Bのコンストラクタ内部ではtypenameはすでにstringになっています。SD? TheXpert 2015.10.25 11:41 #14158 シートを配列にオーバーロードし、配列をソートしてオーバーロードし直すというのが最もオーソドックスな方法です。 Georgiy Merts 2015.10.25 12:04 #14159 私はいつもソートを使用していますが、全く問題ありません。シグマ7i さんは、Coperation::Compare()というメソッドを間違ってオーバーライドしています。これは、ベースメソッドのCObject::Compare() が返す値の型が間違っており、コンパイラはこれを仮想ではなく、別のものとして扱います。その結果、オブジェクトの中でベースメソッドだけが呼び出され、コンパイラは子孫メソッドが存在しないと判断してしまうのです。 A100 2015.10.25 12:09 #14160 sigma7i:しかし、常にベースクラスのCompareを呼び出します。でも、うまくいかないので、何かが間違っているのだと思います...。virtual int Compare(const CObject *node,const int mode=0) const; 1...140914101411141214131414141514161417141814191420142114221423...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
これまでに2件の事例を知っています。
1) bool &=演算(bool 式)において
2)初期化シーケンス に不要なカンマ: val={ {...},{...},}.
これらのバグは新しいビルドではまだ修正されていないのでしょうか? 私のコンパイラはまだエラーを発生させるので、1159ビルドにこだわらざるを得ないのです。
テンプレートの要件は、すべてのメソッドをクラス記述の内部に配置し、ボディを外部に配置しないことです。
スタックとキューコンテナを作成し、1ヶ月後にはクラステンプレートが登場し、すべてがうまく機能するようになりました。)
もう一つの質問は、クラステンプレートについてです。2つのテンプレートクラスがあり、一方のクラスがもう一方のクラスを使用している場合、一方のテンプレートクラスから他方のテンプレートクラスへの型の移行はあるのでしょうか、ないのでしょうか?
スタックとキューコンテナを作成し、1ヶ月後にはクラステンプレートが登場し、すべてがうまく機能するようになりました。)
もう一つの質問は、クラステンプレートについてです。2つのテンプレートクラスがあり、一方のクラスがもう一方のクラスを使用している場合、一方のテンプレートクラスから他方のテンプレートクラスへの型の移行はあるのでしょうか、ないのでしょうか?
試してみてください。
Ilyas:
На сегодня известно о двух случаях:
1) в операции bool &= (bool expression)
2) Лишняя запятая в инициализирующих последовательностях: val={ {...},{...}, }
アレクセイ・ナヴォイコフ
これらのバグは新しいビルドではまだ修正されていないのでしょうか? 私のコンパイラはまだエラーを出し、1159ビルドのままでなければなりません。
CListの ソーティングをされた方はいらっしゃいますか?
基本的にはCompareをオーバーライドする必要があります。
でも、いつもベースクラスのCompareを呼んでいます。でも、うまくいかない、何が悪いんだろう...。
簡単な例を作ってみました。
ネストされたテンプレート(MQL4)を処理する際、型渡しの不具合が見られますが、どなたかお気づきの方はいらっしゃいますか?
具体的には、テンプレートメソッドを持つクラスAがあり、その内部で、メソッドが初期化されたのと同じ型Tを使ったテンプレートコンストラクタによって、別のクラスBのオブジェクトが生成されるのである。その結果、そのメソッド内部ではtypenameはintなど、渡された型を正しく定義しますが、Bのコンストラクタ内部ではtypenameはすでにstringになっています。
SD?
私はいつもソートを使用していますが、全く問題ありません。
シグマ7i さんは、Coperation::Compare()というメソッドを間違ってオーバーライドしています。これは、ベースメソッドのCObject::Compare() が返す値の型が間違っており、コンパイラはこれを仮想ではなく、別のものとして扱います。その結果、オブジェクトの中でベースメソッドだけが呼び出され、コンパイラは子孫メソッドが存在しないと判断してしまうのです。
しかし、常にベースクラスのCompareを呼び出します。でも、うまくいかないので、何かが間違っているのだと思います...。