Rust:提供默认值时“无法推断 const 参数的值”

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

我为 const 泛型类型提供默认值,但 Rust 编译器告诉我它“无法推断 const 参数的值”。似乎忽略了默认值。我使用这个功能有错吗?这是它应该如何工作的吗?那么为什么要使用默认值呢?我用的是每晚 1.60。

const DEFAULT_N: usize = 73;

struct Foo<const N: usize = DEFAULT_N>;

impl<const N: usize> Foo<N> {
    fn new() -> Self {
        println!("N is: {}", N);
        Self
    }
}

fn main() {
    Foo::new();
}
rust
2个回答
4
投票

我是这样工作的

const DEFAULT_N: usize = 73;

struct Foo<const N: usize = DEFAULT_N>;

impl<const N: usize> Foo<N> {
    fn new() -> Self {
        println!("N is: {}", N);
        Self
    }
}

fn main() {
    let f:Foo = Foo::new(); // just added the asked type annotation here
}


0
投票

rust repo 上有一个关于此的问题: rust-lang/rust/issues/98931

© www.soinside.com 2019 - 2024. All rights reserved.