とわいえmoveコンストラクタの方が意図が明確なコードが書けるから良い。
moveコンストラクタがふさわしい例っていやーつぎごケース。
class BarWithBigData {
  Foo* m_pBigData;
  BarWithBigData() : m_pBigData(new Foo[1000000000000] { }
  ~BarWithBigData() { delete[] m_pBigData; }
  BarWithBigData(BarWithBigData&& rhs) { m_pBigData = rhs.m_pBigData; rhs.m_pBigData = NULL; }
  Foo* refBigData() { return m_pBigData; }
};

ちなstd::arrayは使った無いから知らん