错误、漏洞、问题 - 页 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;