std::array 是可移动的吗?
在Bjarne Native 2012 演示幻灯片(幻灯片 41)中,它std::array列为唯一不可移动的容器之一。
快速浏览 gcc 4.8 库源代码似乎可以确认它std::array是不可移动的:
标准::向量:
/* @brief  %Vector move constructor.
   ...       */
  vector(vector&& __x) noexcept
  : _Base(std::move(__x)) { }
而在 std::array 中,唯一接收右值引用参数的方法是随机元素访问,它避免了通过复制返回:
get(array<_Tp, _Nm>&& __arr) noexcept
    { /*...*/ return std::move(get<_Int>(__arr)); }
是std::array默认创建的移动构造函数和移动分配,还是std::array不可移动的?如果它是不可移动的,为什么std::array不能移动而std::vector可以移动?