http://ideone.com/j6dPld对一个const object做move,会return const T &&一般来说,copy的parameter用const T &,move的则是T &&当你return const T &&,他会被传给copy而不是move因此你就会看到cannot be assigned because its copyassignment operator is implicitly deleted但你却觉得奇怪,明明你已经move了,怎么还会用copy呢不过17行那边应该使用move constructor,我只是示范给你看