Насколько я понял идею std::move, вызов в return move(t) должен осуществить перемещение данных класса t в t1 без вызова деструктора.
В реальной программе T содержит объект fstream, а в деструкторе осуществляется закрытие потока.
pvcreate /dev/md1 -ff
vgextend pve /dev/md1
pvmove /dev/sda2 /dev/md1