mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
Elaborate on deriving vs implementing Copy
This commit is contained in:
parent
d6c8169c18
commit
65e78db8d7
@ -288,8 +288,18 @@ marker_impls! {
|
||||
/// }
|
||||
/// ```
|
||||
///
|
||||
/// There is a small difference between the two: the `derive` strategy will also place a `Copy`
|
||||
/// bound on type parameters, which isn't always desired.
|
||||
/// There is a small difference between the two. The `derive` strategy will also place a `Copy`
|
||||
/// bound on type parameters:
|
||||
///
|
||||
/// ```
|
||||
/// struct MyStruct<T>;
|
||||
///
|
||||
/// impl<T: Copy> Copy for MyStruct<T> { }
|
||||
/// ```
|
||||
///
|
||||
/// This isn't always desired. For example, shared references (`&T`) can be copied regardless of
|
||||
/// whether `T` is `Copy`. Likewise, a generic struct containing markers such as [`PhantomData`]
|
||||
/// could potentially be duplicated with a bit-wise copy.
|
||||
///
|
||||
/// ## What's the difference between `Copy` and `Clone`?
|
||||
///
|
||||
|
Loading…
Reference in New Issue
Block a user