模板参数=void*的编译器错误 - 页 9

 
A100:

之所以发出警告,只是因为MQL5中的优先级不同。不是因为......。

因此,开发商已经修复了他们之前的错误...仅此而已

这里 的优先次序也有问题吗?

 
fxsaber:

这里 的优先次序也有问题吗?

它们在MQL5和旧的MQL4中是不同的...我以为你已经看过了
 
A100:
它们在MQL5和旧的MQL4中是不同的...我以为你已经看过了

请列出差异的清单。

 
fxsaber:

请列出差异的清单。

你不能自己做吗?点击以上链接?

MQL5和新MQL4

运作

描述

执行顺序

&&

和的逻辑操作

从左到右

||

OR逻辑运算

从左到右


旧MQL4

||

OR逻辑运算

从左到右

&&

和的逻辑操作

从左到右

一个操作组的优先级越高,它在表中的位置就越高。

你的例子。

bool a = r && g || b;
 
Ilya Malev:
如果编译器提供自动 "正确 "排列小括号,就像Excel在你写一个不完整的公式时那样,那就更方便了。

一般来说,有专门的编程语言供括号爱好者使用 - LISP。下面是一个搜索引擎的摘录:"这种风格有点像LISP语言。但在LISP中,大量的括号是由于缺乏操作的优先 次序"。

 
A100:

一般来说,对于括号的粉丝来说,有专门的编程语言--Simula、LISP。以下是一个搜索引擎的摘录:"这种风格有点像LISP语言。但在LISP中,大量的括号是由操作的优先性 造成的"。

编译器对开发者在过去的逻辑中突然改变的东西发出警告,这是好事。如果从mql4迁移代码后,在ArrayMaximum这样的函数调用上给出同样的警告,我就会在我的时间里节省大量的时间和神经(如果你不知道的话,他们自由地交换了单类型参数)。

 
Ilya Malev:

对于编译器来说,警告你一些开发人员突然改变过去的逻辑是很好的。

我并不介意。就让这些警告留在old/new MQL4中。

 
至于 "正常的程序员会记住C++运算的优先级,比如乘法表",我个人是在开始重载运算符之后才或多或少记住的,在这之前我根本没有打开过它。不是所有的mql编码员都是专业的,终端和交易员 语言的开发者需要考虑到这一点。
 
Ilya Malev:

如果从mql4转移代码后,对ArrayMaximum这样的函数调用发出同样的警告,我就会在我的时间里节省大量的时间和神经(如果你不知道,他们自由地交换了相同的参数)。

嗯,它们没有被送出去。这就是选择性编码的糟糕之处--它造成了一种错觉,以为编译器会照顾到任何事情(所以不是全部就是没有)。

 
Ilya Malev:
不是所有的mql编码员都是专业的,终端和交易员 语言的开发者需要考虑到这一点。

正是如此!从来不是专业的,这样的警告已经帮助我100次了。