Why do I have to call move on an rvalue reference?
As skypjack correctly comments, accessing an object through its name always results in an lvalue reference. This is a safety feature and if you think it through you will realise that you are glad of it. As you know, std::move simply casts an l-value reference to an r-value reference. If we use the returned r-value … Read more