移动后使用C ++:有效的用例?

时间:2018-04-24 00:46:27

标签: c++ move

一个简单的问题,使用一个对象后是否合法,该对象在移动后拥有一个唯一的指针,并在未被移动的情况下继续使用唯一指针?

1 个答案:

答案 0 :(得分:2)

该标准保证移动的unique_ptr确实比较等于nullptr。 N4659 [unique.ptr] / 4:

  

此外,u可以根据请求将所有权转让给另一个唯一指针u2。完成此类转移后,以下后置条件成立:

     
      
  • (4.1)u2.p等于转移前u.p
  •   
  • (4.2)u.p等于nullptr
  •   
  • (4.3)如果保留转移前u.d状态,则此状态已转移至u2.d
  •   

这些保证也意味着从已经搬离的那个移动是安全的。