在以下代码中,"移动(A)"没有工作,需要" std :: move(A)", 但" std :: move(std :: unique_ptr)"的代码作品
为什么?
#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"
}