c++ - Rust 中有类似表达式模板的东西吗?

标签 c++ rust

在 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/

相关文章:

c++ - 错误编译 "no match for operator=="

c++ - 从友元函数返回后无法输出动态数组

c++ - 当数据结构是模板参数时,如何判断操作是否会使迭代器无效?

c++ - 这两种不是同一种类型吗?

rust - 将字符串开头字符的多个副本合并为 Rust 中的一个

c++ - 蓝牙:使用 Bluez 检测事件

rust - 如何在 Rust 中更改 cortex-m4 处理器的异常优先级?

mongodb - 无法连接到 rust 的MongoDB Atlas数据库

rust - 错误[E0502] : cannot borrow `vector` as immutable because it is also borrowed as mutable

memory - 为什么在Rust中 “capture by reference”与 “capture a reference by value”等效?