对MT5的祝愿 - 页 70

 
MetaDriver:

对编纂者,一个建议。

请让小结构按值传输,而不仅仅是按引用传输。 因为所有复杂/有理数的算术都慢得可怕。

请解释一下,通过引用传递而不是结构值传输,怎么会慢下来?最好有一个例子。


一旦我们允许按价值传递结构,真正的刹车就开始了。开发人员会在不知不觉中到处使用通过堆栈传递的巨大结构,他们的程序会被减慢。

 
MetaDriver:

多重继承绝对是邪恶的。

Ы?如何继承两个接口?

我赞成与利物浦合并,而不是与利物浦合并。 考虑到几代人的经验,那里更有意义。

至少要有基本的东西。这样的表达方式是公然的扯皮行为。
 
MetaDriver:

对编译器的要求。

请让小结构按值传输,而不仅仅是按引用传输,因为所有复杂/有理数的算术都慢得可怕。

简单地设置一个限制(由你决定--32或64字节),超过这个限制,编译器就不传递以值传递的结构,严格要求以引用传递。

另外,如果能把小的结构作为函数结果返回,那就非常好了。

--

我甚至投票支持操作者超载。我希望我有一天会去做这件事。看来,"与C++合并 "的路线已被采纳并得到普遍支持。

用非标准的数学对象进行算术运算的函数式语法非常不方便,而且速度也会变慢很多。

因为它不能被内联替换所取代,而且需要花费函数调用。

不,只参考结构。没有例外。给我们一些刹车的数字,以便我们能够估计灾难的规模。

我们曾经有一个选项,可以将结构作为函数结果返回。 最终,由于实现的模糊性(我们的内部调试),我们推翻了这个选项。我们决定,既然结构是通过引用传递的,那就把产生的结构作为参数传递。

操作符的重载是可能的。但不是现在。

 
开发人员:请让OnTimer()在没有 连接到图表的指标中工作。
 
Lizar:
开发人员:请让OnTimer()在没有 连接到图表的指标中工作。
+1000
 
stringo:

1.不,结构只参考。没有例外。对于刹车,请给出数字,以便我们能够估计灾难的规模。

2.我们曾经有一个选项,可以将结构作为函数结果返回,但由于实现上的模糊性(我们的内部争吵),我们最终推翻了这个选项。我们决定,既然结构是通过引用传递的,那就把产生的结构作为参数传递。

3.运算符的重载是可能的。但不是现在。

1.:) 《大灾难》被取消了。 我测了一下,非常惊讶,刹车不在里面(剧本在预告片里)。我自己搜索并优化。 但在许多情况下语法更方便,当你可以在参数中替代表达式时。是的。好吧,我可以接受这个。这是可以忍受的。最主要的是,它没有放慢速度。

但是我们可以把结构重新赋值回来吗? 结构的赋值是完全合法的,所以我们也允许它回来。 当函数执行结果的赋值在语法上是统一的,程序的可读性就更强了。

Y = Func(X); - 在简单阅读代码时,它看起来比Func(X, Y); //你应该猜到Y是一个输出参数。

不,斯特劳斯楚普不会喜欢你的解决方案......这在某种程度上是不对的......:)

3.哦!那就好。谢谢你的帮助。

附加的文件:
 
MetaDriver:

我们是否也可以合法地重新赋值结构,所以我们也允许重新赋值。 当函数结果的赋值在语法上统一后,程序的可读性就更强了。

我告诉你一个秘密。就这样做吧。

结果他们没有切断它。你可以返回简单的结构。但请记住,在这种情况下,你将不得不增加2个额外的拷贝--拷贝到堆栈上的节奏结构中,以及从节奏结构中拷贝到结果结构中。

Документация по MQL5: Основы языка / Типы данных / Структуры и классы
Документация по MQL5: Основы языка / Типы данных / Структуры и классы
  • www.mql5.com
Основы языка / Типы данных / Структуры и классы - Документация по MQL5
 

为什么CExpert ,从标准库中 在文档中这样声明。

class CExpert : public CObject

在Expert.mqh文件中,我们看到这个声明?

class CExpert : public CExpertBase
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
有必要写一篇关于创建和测试交易策略的课程的文章...
 
Lizar:
开发人员:请让OnTimer()在没有 连接到图表的指标中工作。
目前,这是不可能的。设置定时器 的函数应该被称为ChartSetTimer(),这个名字更准确地反映了它的行为。
Документация по MQL5: Работа с событиями / EventSetTimer
Документация по MQL5: Работа с событиями / EventSetTimer
  • www.mql5.com
Работа с событиями / EventSetTimer - Документация по MQL5
原因: