エラー、バグ、質問 - ページ 2044 1...203720382039204020412042204320442045204620472048204920502051...3185 新しいコメント fxsaber 2017.10.17 18:32 #20431 Alexey Navoykov:静的変数の初期化に関する バグ。古いビルドでは存在しなかった。これをサービスデスクに送って構わない人。もうそこでコミュニケーションを取る気はない。バグではなく、ここから 議論されています。より抜粋 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム mql4言語の特殊性、ヒントとコツ アレクセイ・ビクトロフ さん 2017.04.30 08:54 初期化シーケンスです。(ご存じない方のために)まず、グローバルレベルの変数、次に 関数の優先順位に応じて配置されるスタティック 変数、OnInit()、OnTick()、OnCalculate()...といった具合です。さらに、私の時代にはローカルなものには興味がなかったのです。つまり、このコードでは、静的変数が初期化さ れる前に関数が呼び出されるため、このようなエラーが発生することが判明しました。変数が初期化される前に関数が呼び出される Alexey Navoykov 2017.10.17 18:54 #20432 fxsaber:バグではなく、ここから 議論されています。より抜粋つまり、あなたとアレクセイ・ビクトロフの間で議論されたのなら、それがバグではないと信じる根拠となるのですね?)そして、この人自身、自分のプログラミング知識のレベルはあなたよりずっと低いと言っています。つまり、リストから除外することができるのです。残っているのはあなただけです)。自分と相談した結果、バグではない)バグである。変数の初期化が無視され、それを飛び越えてコードが実行され続けるということは、原理的にありえないのです。これはナンセンスだ。また、ここでは初期化の順番は関係ありません。この変数は初期化されるか、コンパイラがここでエラーを発生させるかのどちらかです。第三の道はないのです。そうでなければ、プログラミング言語ではなく、何か別のものです。 Alexey Navoykov 2017.10.17 19:00 #20433 新しいビルドの別のバグ。template<typename T> int F1(const T& array[]) { return ArrayMaximum(array); } template<typename T> int F2(const T& array[]) { return F1(array); } void OnStart() { int arr[4]= { 1, 2, 3 }; Print(F2(arr)); // Выдаёт -1 !!! }えー、この辺は下品なんですね。古いビルドではマーケットで商品を受け付けないため、新しいビルドにアップグレードしようと思ったのです。そして、ここにバグの上にバグがある!? Alexey Viktorov 2017.10.17 19:05 #20434 Alexey Navoykov:では、あなたとAlexey Viktorovの間で議論されたのなら、それがバグでないと信じる根拠となるのですね?)そして、この方自身、自分のプログラミング知識のレベルは、あなたよりずっと低いと述べています。つまり、リストから除外することができるのです。残っているのはあなただけです)。自分と相談した結果、バグではない)バグである。変数の初期化が無視され、それを飛び越えてコードが実行され続けるということは、原理的にありえないのです。これはナンセンスだ。また、ここでは初期化の順番は関係ありません。この変数は初期化されるか、コンパイラがここでエラーを発生させるかのどちらかです。第三の道はないのです。そうでなければ、プログラミング言語ではなく、何か別のものです。消していいんですよ。「自分はどんなプログラマーなんだろう」と指をくわえて見ていることはないですから......。 お母さんはドキュメントを読めって言わないの?そんな方のために、特にドキュメントからの引用を挿入してみました。 取引、自動売買システム、取引戦略のテストのためのフォーラムが1つあります。 mql4 の特殊性、ヒントとコツ アレクセイ・ビクトロフ さん 2017.04.29 12:50 ヘルプにstatic variable...と書いてありますが大丈夫でしょうか?よみきる静的変数は、任意の式で初期化できる単純なローカル変数とは異なり、その型に対応する定数または定数式で 初期化することができます。でも、機能ではありません。このような仕組みになっています#property strict #property indicator_chart_window int TestBrokenStatic() { static int stInt = 101; stInt++; return stInt; } int OnInit() { static int result = 0; result = TestBrokenStatic(); Print("TestStatic Expected result 102 - Actual result=", result); result = TestBrokenStatic(); Print("TestStatic Expected result 103 - Actual result=", result); return INIT_SUCCEEDED; } int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { return rates_total; } 2017.04.29 13:49:51.546 !Test USDCHF,M15: TestStatic Expected result 103 - Actual result=103 2017.04.29 13:49:48.457 !Test USDCHF,M15: TestStatic Expected result 102 - Actual result=102 2017.04.29 13:49:40.089 Custom indicator Test\!Test USDCHF,M15: loaded successfully fxsaber 2017.10.17 19:30 #20435 Alexey Navoykov:新しいビルドの別のバグ。えー、この辺は下品なんですね。古いビルドではマーケットで商品を受け付けないため、新しいビルドにアップグレードしようと思ったのです。そして、バグの上にバグがある!?そして、正しく理解した! Alexey Navoykov 2017.10.17 19:32 #20436 Alexey Viktorov:消していいんですよ。「自分はどんなプログラマーなんだろう」と指をくわえて見ていることはないですから......。 お母さんはドキュメントを読めって言わないの?特にこのような方々のために、ドキュメントからの引用を挿入しておきます。 なるほど、それならすぐには気づかず、失礼しました。もちろん、誰にも気づかれずに変更できたのはすごいことです。理解できないのは、なぜコンパイラは無効な演算が実行されたことに反応しないのか、ということです。I.e.どのような場合でもバグがある Alexey Navoykov 2017.10.17 19:33 #20437 fxsaber:ちゃんとしたものがあるんだ!うーん、どんな体格なんだろう?私のは1653です。 fxsaber 2017.10.17 19:37 #20438 Alexey Navoykov:では、あなたとAlexey Viktorovの間で議論されたのなら、それがバグでないと信じる根拠となるのですね?)そして、この方自身、自分のプログラミング知識のレベルは、あなたよりずっと低いと述べています。つまり、リストから除外することができるのです。残っているのはあなただけです)。自分と相談した結果、バグではない)バグである。変数の初期化が無視され、それを飛び越えてコードが実行され続けるということは、原理的にありえないのです。これはナンセンスだ。また、ここでは初期化の順番は関係ありません。この変数は初期化されるか、コンパイラがここでエラーを発生させるかのどちらかです。第三の道はないのです。そうでなければ、プログラミング言語ではなく、何か別のものです。その結果について論理的な(整合性のある)説明を見つけた場合、私はバグを見ません。C++と結果が一致しないのにバグを証明することは許されないと思います。そう考えて実行したのはC++の中の人です。でも、そう思っていなかったから、やらなかったのかもしれない。だから、外にあるものを参考にするのではなく、自分の中の「こうでなければならない」という概念に頼ったほうがいいんです。そして、この「自分のもの」が、本当に自分のものであることが望ましいのです。また、プログラミングの経験を積んでいくうちに、「こうあるべき」という固定観念が気づかないうちに押しつけられた結果でもありません。間違ってもいいんです。自分のレーキで少しずつ勉強しているところです。 fxsaber 2017.10.17 19:37 #20439 Alexey Navoykov: うーん、どんな体格なんだろう?1653を持っています。1653x64. Alexey Navoykov 2017.10.17 19:42 #20440 fxsaber:1653x64.それなのに矛盾があるのは不思議ですね......。誰かに自分自身で確認してもらう。 1...203720382039204020412042204320442045204620472048204920502051...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
静的変数の初期化に関する バグ。古いビルドでは存在しなかった。
これをサービスデスクに送って構わない人。もうそこでコミュニケーションを取る気はない。
バグではなく、ここから 議論されています。より抜粋
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
mql4言語の特殊性、ヒントとコツ
アレクセイ・ビクトロフ さん 2017.04.30 08:54
初期化シーケンスです。(ご存じない方のために)
まず、グローバルレベルの変数、次に 関数の優先順位に応じて配置されるスタティック 変数、OnInit()、OnTick()、OnCalculate()...といった具合です。さらに、私の時代にはローカルなものには興味がなかったのです。つまり、このコードでは、静的変数が初期化さ れる前に関数が呼び出されるため、このようなエラーが発生することが判明しました。変数が初期化される前に関数が呼び出される
バグではなく、ここから 議論されています。より抜粋
つまり、あなたとアレクセイ・ビクトロフの間で議論されたのなら、それがバグではないと信じる根拠となるのですね?)そして、この人自身、自分のプログラミング知識のレベルはあなたよりずっと低いと言っています。つまり、リストから除外することができるのです。残っているのはあなただけです)。自分と相談した結果、バグではない)
バグである。変数の初期化が無視され、それを飛び越えてコードが実行され続けるということは、原理的にありえないのです。これはナンセンスだ。また、ここでは初期化の順番は関係ありません。この変数は初期化されるか、コンパイラがここでエラーを発生させるかのどちらかです。第三の道はないのです。そうでなければ、プログラミング言語ではなく、何か別のものです。
新しいビルドの別のバグ。
えー、この辺は下品なんですね。古いビルドではマーケットで商品を受け付けないため、新しいビルドにアップグレードしようと思ったのです。そして、ここにバグの上にバグがある!?
では、あなたとAlexey Viktorovの間で議論されたのなら、それがバグでないと信じる根拠となるのですね?)そして、この方自身、自分のプログラミング知識のレベルは、あなたよりずっと低いと述べています。つまり、リストから除外することができるのです。残っているのはあなただけです)。自分と相談した結果、バグではない)
バグである。変数の初期化が無視され、それを飛び越えてコードが実行され続けるということは、原理的にありえないのです。これはナンセンスだ。また、ここでは初期化の順番は関係ありません。この変数は初期化されるか、コンパイラがここでエラーを発生させるかのどちらかです。第三の道はないのです。そうでなければ、プログラミング言語ではなく、何か別のものです。
消していいんですよ。「自分はどんなプログラマーなんだろう」と指をくわえて見ていることはないですから......。
お母さんはドキュメントを読めって言わないの?そんな方のために、特にドキュメントからの引用を挿入してみました。
取引、自動売買システム、取引戦略のテストのためのフォーラムが1つあります。
mql4 の特殊性、ヒントとコツ
アレクセイ・ビクトロフ さん 2017.04.29 12:50
ヘルプにstatic variable...と書いてありますが大丈夫でしょうか?よみきる
でも、機能ではありません。
このような仕組みになっています
新しいビルドの別のバグ。
えー、この辺は下品なんですね。古いビルドではマーケットで商品を受け付けないため、新しいビルドにアップグレードしようと思ったのです。そして、バグの上にバグがある!?
そして、正しく理解した!
消していいんですよ。「自分はどんなプログラマーなんだろう」と指をくわえて見ていることはないですから......。
お母さんはドキュメントを読めって言わないの?特にこのような方々のために、ドキュメントからの引用を挿入しておきます。
ちゃんとしたものがあるんだ!
うーん、どんな体格なんだろう?私のは1653です。
では、あなたとAlexey Viktorovの間で議論されたのなら、それがバグでないと信じる根拠となるのですね?)そして、この方自身、自分のプログラミング知識のレベルは、あなたよりずっと低いと述べています。つまり、リストから除外することができるのです。残っているのはあなただけです)。自分と相談した結果、バグではない)
バグである。変数の初期化が無視され、それを飛び越えてコードが実行され続けるということは、原理的にありえないのです。これはナンセンスだ。また、ここでは初期化の順番は関係ありません。この変数は初期化されるか、コンパイラがここでエラーを発生させるかのどちらかです。第三の道はないのです。そうでなければ、プログラミング言語ではなく、何か別のものです。
その結果について論理的な(整合性のある)説明を見つけた場合、私はバグを見ません。C++と結果が一致しないのにバグを証明することは許されないと思います。そう考えて実行したのはC++の中の人です。でも、そう思っていなかったから、やらなかったのかもしれない。だから、外にあるものを参考にするのではなく、自分の中の「こうでなければならない」という概念に頼ったほうがいいんです。そして、この「自分のもの」が、本当に自分のものであることが望ましいのです。また、プログラミングの経験を積んでいくうちに、「こうあるべき」という固定観念が気づかないうちに押しつけられた結果でもありません。
間違ってもいいんです。自分のレーキで少しずつ勉強しているところです。
うーん、どんな体格なんだろう?1653を持っています。
1653x64.
1653x64.
それなのに矛盾があるのは不思議ですね......。
誰かに自分自身で確認してもらう。