mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-15 05:26:47 +00:00
Implement Default for raw pointers
This commit is contained in:
parent
18a029cfe8
commit
830bd8b6f4
@ -1739,3 +1739,11 @@ impl<T: ?Sized> PartialOrd for *const T {
|
||||
*self >= *other
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "raw_ptr_default", since = "CURRENT_RUSTC_VERSION")]
|
||||
impl<T: ?Sized + Thin> Default for *const T {
|
||||
/// Returns the default value of [`null()`][crate::ptr::null].
|
||||
fn default() -> Self {
|
||||
crate::ptr::null()
|
||||
}
|
||||
}
|
||||
|
@ -2156,3 +2156,11 @@ impl<T: ?Sized> PartialOrd for *mut T {
|
||||
*self >= *other
|
||||
}
|
||||
}
|
||||
|
||||
#[stable(feature = "raw_ptr_default", since = "CURRENT_RUSTC_VERSION")]
|
||||
impl<T: ?Sized + Thin> Default for *mut T {
|
||||
/// Returns the default value of [`null_mut()`][crate::ptr::null_mut].
|
||||
fn default() -> Self {
|
||||
crate::ptr::null_mut()
|
||||
}
|
||||
}
|
||||
|
@ -1020,3 +1020,20 @@ fn test_ptr_swap_nonoverlapping_is_untyped() {
|
||||
ptr_swap_nonoverlapping_is_untyped_inner();
|
||||
const { ptr_swap_nonoverlapping_is_untyped_inner() };
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_ptr_default() {
|
||||
#[derive(Default)]
|
||||
struct PtrDefaultTest {
|
||||
ptr: *const u64,
|
||||
}
|
||||
let default = PtrDefaultTest::default();
|
||||
assert!(default.ptr.is_null());
|
||||
|
||||
#[derive(Default)]
|
||||
struct PtrMutDefaultTest {
|
||||
ptr: *mut u64,
|
||||
}
|
||||
let default = PtrMutDefaultTest::default();
|
||||
assert!(default.ptr.is_null());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user