Rust模板参数解析器似乎被破坏了

问题描述 投票:0回答:1

我很确定这样的代码之前有效:

fn f<F: fn()>(f: F) {
}

但是,现在它给出以下错误:

error: expected one of `(`, `,`, `=`, `>`, `?`, `for`, lifetime, or path, found `fn`
  --> src/main.rs:96:13
   |
96 |     fn f<F: fn()>(f: F) {
   |            -^^ unexpected token
   |            |
   |            expected one of 8 possible tokens here

请注意,这编译好:

fn f(f: fn()) {

}
rust
1个回答
3
投票

你必须使用function trait

fn f<F: Fn()>(f: F) {
}

fnfunction pointer,而不是特质。

请注意,您也可以这样写:

fn f(f: fn()) {
}
© www.soinside.com 2019 - 2024. All rights reserved.