我试图通过一个简单的示例(如下)来了解 std::move 的方式。基本上我试图将 p1 的内容移动到 p2,所以 p1 之后是空的,但这并没有发生。
我想我没有正确使用 std::move 。如果有人能向我解释这一点,我将不胜感激。
#include <iostream>
#include <utility>
int main()
{
int * p1 = new int[10];
for(int i = 0; i < 10; ++i)
p1[i]=i;
// moving contents of p1 to p2
int * p2 = std::move(p1);
// I was expeting p1 now to be empty but it's not...
if(p1 != NULL)
std::cout << "I'M NOT EMPTY\n";
// prints I'M NOT EMPTY
}