In the following code, "move(A)" doesn't work, and requires "std::move(A)", But the code for "std::move(std::unique_ptr)" works
Why is that?
#include <memory>
class A
{
public:
A() = delete;
A(int i){}
A(A&& rhs) {}
};
int main()
{
std::unique_ptr<A> ux = std::make_unique<A>(1);
std::unique_ptr<A> uy(move(ux)); // This compiles without "std::move"
A x = A(1);
A y(move(x)); // This won't compile. Requires "std::move"
}