I am confused about explicit usage of the rvalue reference.
Suppose we have a class named ClassX and it has all copy and move methods. When I execute the code below, different copy methods have been invoked (copy constructor and move constructor). But I expect always move constructor is executed. Why copy constructor is invoked when i bind an object explicitly to an rvalue reference and use it as copy object?
ClassX c = std::move(object_c); // Invokes move constructor
ClassX&& cr = std::move(object_c);
ClassX c = cr; // Invokes copy constructor