簡単な例 (以下) を使用して 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
}