在 C++ 中,表达式模板是一种技术,它依赖于编译器对 C++ 代码中表达式的了解来简化它们并优化它们,使其超出过程程序中的可能范围。这是一种强大的技术,例如, Eigen 和 Armadillo 矩阵库,以加速矩阵上的某些复合运算。一个incomplete wiki page on the Eigen web page几乎要开始解释了。
我想知道 Rust 中是否存在类似的技术,即是否有办法让 Rust 编译器在编译时优化某些表达式,以便创建最少数量的临时对象。
最佳答案
如果我阅读 Expression Templates是的,然后您可以看到它们与 Rust 迭代器一起运行:方法如 filter , take等等等等返回一个表达式模板,一个表示计算但在请求之前不执行它的结构。这会立即提供您需要的优化,不会创建临时文件。
使用 where我想可以编写专门化来进一步优化某些计算组合。
关于c++ - Rust 中有类似表达式模板的东西吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30117962/