模板
现代编程语言中有许多内置功能,可以帮助您避免代码重复,从而最大限度地减少错误并提高程序员的工作效率。在 MQL5 中,这些工具包括已知的 函数、支持继承的对象类型(类 和 结构体)、 预处理器宏以及 包含文件.但如果没有模板,这份清单就不完整。
模板是对函数或对象类型的特制泛型定义,编译器可以根据该定义自动生成该函数或对象类型的工作实例。生成的实例包含相同的算法,但操作不同类型的变量,这与源代码中使用模板的特定条件相对应。
对于 C++ 爱好者,我们注意到 MQL5 模板不支持 C++ 模板的许多功能,特别是:
- 非类型参数;
- 具有默认值的参数;
- 可变数量的参数;
- 类、结构体和关联的特化(完全特化和偏特化);
- 模板的模板。
一方面,这降低了 MQL5 中模板的潜力,但另一方面,它简化了不熟悉这些技术的人员的材料学习。