在Rust中有类似表达式模板的东西吗?

时间:2015-05-08 07:16:01

标签: c++ rust

在C ++中,表达式模板是一种技术,它依赖于编译器对C ++代码中表达式的了解,以简化它们并优化它们,使其超出程序性程序中的可能性。它是一种强大的技术,例如用于Eigen和Armadillo矩阵库可加速矩阵上的某些复合运算。 incomplete wiki page on the Eigen web page几乎开始解释它。

我想知道Rust中是否存在类似的技术,即有没有办法让Rust编译器在编译时优化某些表达式,以便创建最少量的临时值。

1 个答案:

答案 0 :(得分:3)

如果我正确阅读Expression Templates,那么您可以使用Rust Iterators查看它们:filtertake等方法等返回表达式模板,表示结构计算但在请求之前不执行。这样就可以立即进行优化,不会产生临时性。

使用where子句,我想可以编写专门化来进一步优化某些计算组合。