Podczas korzystania z nieprzetworzonych punktów w strukturze, Rust nie pozwala uzyskać wartości domyślnej.Jak zaimplementować `Default` dla surowego wskaźnika?
np
#[derive(Default)]
struct Foo {
bar: *mut Foo,
baz: usize,
}
Raporty
error[E0277]: the trait bound `*mut Foo: std::default::Default` is not satisfied
próbowałem tego, ale to nie działa:
impl Default for *mut Foo {
fn default() -> *mut Foo {
ptr::null_mut()
}
}
To daje błąd:
impl doesn't use types inside crate
Czy istnieje sposób zadeklarowania Default
dla wskaźnika surowego?
W przeciwnym razie będę musiał napisać jawne funkcje default
dla każdego struct
, który zawiera surowy wskaźnik, OK w tym przykładzie, ale dla większych struktur może być uciążliwy, więc chciałbym móc tego uniknąć w niektórych przypadki.
Teraz zastanawiam się, czy ktoś aktywnie zdecydował, że surowe wskaźniki nie powinny IMPL 'default' lub jeśli impl właśnie zapomniał ... –
mam stworzyć problem: https://github.com/rust-lang/rust/issues/43722 – AndreyT