移动对象后,必须能够销毁它:
T obj;
func(std::move(obj));
// don't use obj and let it be destroyed as normal
但是 obj 还能做什么呢?你能把另一个对象移动到它里面吗?
T obj;
func(std::move(obj));
obj = std::move(other);
这是否取决于确切的类型?(例如,std::vector可能会提供特定的保证,您不能依赖所有T的保证)。是否要求或者说所有类型都支持除销毁以外的移动对象操作是合理的?