Visual Studio 2017是否需要显式移动构造函数声明?

下面的代码可以使用Visual Studio 2015成功编译,但使用Visual Studio 2017失败.Visual Studio 2017报告:

error C2280: “std::pair::pair(const std::pair &)”: attempting to reference a deleted function

代码如下:

#include <unordered_map>
#include <memory>

struct Node
{
  std::unordered_map<int, std::unique_ptr<int>> map_;
  // Uncommenting the following two lines will pass Visual Studio 2017 compilation
  //Node(Node&& o) = default;
  //Node() = default;
};

int main()
{
  std::vector<Node> vec;
  Node node;
  vec.push_back(std::move(node));
  return 0;
}

看起来Visual Studio 2017显式需要一个移动构造函数声明。 是什么原因?

 
c++
visual-studio-2017
move-constructor
0s