HiveBrain v1.2.0
Get Started
← Back to all entries
gotcharustCritical

What is the difference between Copy and Clone?

Submitted by: @import:stackoverflow-api··
0
Viewed 0 times
andclonebetweenwhatthedifferencecopy

Problem

This issue seems to imply it's just an implementation detail (memcpy vs ???), but I can't find any explicit description of the differences.

Solution

Clone is designed for arbitrary duplications: a Clone implementation for a type T can do arbitrarily complicated operations required to create a new T. It is a normal trait (other than being in the prelude), and so requires being used like a normal trait, with method calls, etc.

The Copy trait represents values that can be safely duplicated via memcpy: things like reassignments and passing an argument by-value to a function are always memcpys, and so for Copy types, the compiler understands that it doesn't need to consider those a move.

Context

Stack Overflow Q#31012923, score: 263

Revisions (0)

No revisions yet.