vendredi 26 février 2016

Why C++ lvalue objects can't be bound to rvalue references (&&)?

The idea of move semantics is that you can grab everything from another temporary object (referenced by an rvalue reference) and store that "everything" in your object. That helps to avoid deep copying where single construction of things is enough -- so you construct things in a rvalue object and then just move it to your long living object.

Why is it that C++ doesn't allow binding lvalue objects to rvalue references? Both allow me to change the referenced object, so there is no difference to me in terms of accessing internals of referenced object.

The only reason I can guess is function overloading ambiguity issues.

Aucun commentaire:

Enregistrer un commentaire