【发布时间】:2016-06-05 06:58:18
【问题描述】:
Rust 有一个“内联”属性,可以用于这三种风格之一:
#[inline]
#[inline(always)]
#[inline(never)]
什么时候应该使用它们?
在 Rust 参考中,我们看到 an inline attributes section 说
编译器会根据内部启发式自动内联函数。错误的内联函数实际上会使程序变慢,因此应谨慎使用。
在 Rust 内部论坛中,huon 也是 conservative about specifying inline。
但是我们在 Rust 源代码中看到了considerable usage,包括标准库。在单行函数中添加了很多内联属性,编译器应该很容易根据参考通过启发式发现和优化。这些实际上不需要吗?
【问题讨论】:
标签: rust inline llvm-codegen