
Mathias Gaunard wrote:
Thomas Klimpel wrote:
The article explains "copy elision" and RVO, and hence explains why taking argument by value is closely related to rvalue-ness. Saying that perfect forwarding doesn't work because the compiler can't do an optional copy elision anymore when you forward a value seems a bit far-fatched, especially since the pattern where you can exploit it is quite specific. (I've never found a reason to pass arguments by value outside of the assignment operator)
While reviewing the polygon library in a debugger, I found myself stepping through copy-constructors of various iterator types quite often. So I remembered your claim "I've never found a reason to pass arguments by value outside of the assignment operator", because there are obviously good reasons to pass iterators by value. Regards, Thomas