Most times I see std::move posted on here, it's referencing the <utility> version.
The std::move in <algorithm> actually does what its name suggests, move, whereas the std::move in <utility> casts its argument to an xvalue, which is basically just a preprocessing step for eventually moving the xvalue into an lvalue. So isn't it kind of confusing for both of these to be named move when the functionality for each is different?