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

 

開発者の皆さん、はっきりさせてください。このような文字列でコンパイラが型変換の 警告を出さないのは正常なことなのでしょうか?

const bool barsToStart = Bars( _Symbol, _Period, startTime, timeCurrent );
 
A100:

もし、ここで

(*) は A::a = 2 を意味し、 ::a = 2 を意味するものではありません。

であれば、S::q = S::z もそこに含意されるべきで、S::q = ::z ではありません。

Sオブジェクトの関数内ではなく、グローバルレベルでの表現なのに、なぜそこでS::zが暗示されるのでしょう?

グローバルレベルは、つまり、暗黙の了解 ::z - が一切ない。

 
Alexey Kozitsyn:

開発者の皆さん、はっきりさせてください。このような文字列でコンパイラが型変換の 警告を出さないのは正常なことなのでしょうか?

おかしいな...。何にも書いてないんだけど...。

 
Georgiy Merts:

おかしいな...。私のは何も書いてないんですけど...。

それこそ、何も書かないんですよ。そして、彼はそうすべきだと、私は思います...

 
Alexey Kozitsyn:

それこそ、何も書かないんですよ。でも、そうあるべきだと思うんです...。

intの結果がboolに変換されるということですか?

はい、理論的には、警告が発生するはずです。

 
Georgiy Merts:

intの結果がboolに変換されるということですか?

そう、警告を発することになっているのです。

そう、暗黙の変換は警告なしに行われるのです。

 
Alexey Kozitsyn:

それこそ、何も書かないんですよ。でも、彼はそうすべきだと思うんだ...。

彼はそうすべきです。そうならない理由は推して知るべしです。ゼロは偽とし、ゼロ以外は真とする。

ということです。

bool b1 = 123; // true
b1 = 0; // false

おそらくこのルールではそうなのでしょうが、やはり、警告は必要だと思います。

SDに書き込む。

 
Alexey Volchanskiy:

SDへの書き込み

はい、そうです...。が、返事がない。一般に、BODは、私が申請書を書くと、申請書が受理されて検討されるという不思議な仕組みになっています。そして、沈黙。答えるつもりがないのに、なぜ応募する必要があるのですか?といった具合に、あらゆるアプリケーションに対応します。

 
Alexey Kozitsyn:

開発者の皆さん、はっきりさせてください。このような文字列でコンパイラが型変換の 警告を出さないのは正常なことなのでしょうか?

開発者の回答

Какого предупреждения вы ждёте? 0 это false, не 0 - true.
Это обычная практика в логических выражениях

もっと気をつけなければならないことがある。

 
Alexey Kozitsyn:

開発者の皆さん、はっきりさせてください。このような文字列でコンパイラが型変換の 警告を出さないのは正常なことなのでしょうか?

バーズは、それが何を返すのか、何を同列に扱おうとしているのかを確認します。

const bool barsToStart = Bars( _Symbol, _Period, startTime, timeCurrent ) == 0 ? false : true;