5
在结构中使用原始点时,Rust不允许从默认值派生。如何为原始指针实现`Default`?
如:
#[derive(Default)]
struct Foo {
bar: *mut Foo,
baz: usize,
}
报告
error[E0277]: the trait bound `*mut Foo: std::default::Default` is not satisfied
我试过,但它不工作:
impl Default for *mut Foo {
fn default() -> *mut Foo {
ptr::null_mut()
}
}
这给出了一个错误:
impl doesn't use types inside crate
有没有办法为原始指针声明Default
?
否则我得写明确default
功能包含一个原始指针,确定在这个例子中,但对于更大的结构也可能是乏味的任何struct
,所以我希望能够避免它在某些案例。
现在,我想知道,如果有人主动决定,原始指针不应该IMPL'Default'或者如果IMPL只是忘记了... –
我已创建一个问题:https://github.com /防锈琅/防锈/问题/ 43722 – AndreyT