Well, define &quot;problem.&quot; Naive, correct C++ code will copy objects because it&#x27;s the simplest way to make sure each object has one obvious owner and won&#x27;t leak without having to write memory management code or fiddling with smart pointers, which have non-trivial semantics. Yeah, you can avoid the copying, but C++ definitely encourages it in the sense of making it the path of the least resistance.