Types that be copied non-trivially (usually types containing a heap allocation).
Returns a copy of the object.