编译错误len作为const fn

时间:2019-12-09 03:42:44

标签: rust

我从一个依赖项bytes 0.5.2中收到错误。这里是错误的代码示例:

pub const fn foo(foo: &'static [u8]) -> usize {
    foo.len()
}
error: `core::slice::<impl [T]>::len` is not yet stable as a const fn
 --> <source>:2:5
  |
2 |     foo.len()
  |     ^^^^^^^^^
error: aborting due to previous error
active toolchain
----------------

stable-x86_64-pc-windows-msvc (default) rustc 1.38.0 (625451e37 2019-09-23)

1 个答案:

答案 0 :(得分:7)

0.5.x似乎需要Rust 1.39,因此最简单的选择可能是升级到最新版本。

错误状态

  

core::slice::<impl [T]>::len作为const fn尚不稳定

,如果您查看the release notes for 1.39,您会发现其中一项是

  

str::len[T]::lenstr::as_bytes现在是const函数

所以这个板条箱特别需要> = 1.39