title: How to create a vector with non-copyable and non-assignable objects?
body: <p>I have a class</p>
  
  <pre><code>class A {
   public:
    A(int x): x_(x) {}
    void SetValue(int m) {x_=m};
   private:
     DISALLOW_COPY_AND_ASSIGN(A);
  };
  </code></pre>
  
  <p>I'm trying to create a vector of objects of type A</p>
  
  <pre><code>vector&lt;std::unique_ptr&lt;A&gt;&gt; objects;
  objects.reserve(10);
  for (int i = 0; i &lt; 10; i++) {
     auto a = MakeUnique&lt;A&gt;();
     a-&gt;SetValue(20);
     objects.emplace_back(a);
  }
  </code></pre>
  
  <p>This results in a compilation error call to deleted constructor of <code>'std::unique_ptr&lt;A, std::default_delete&lt;A&gt; &gt;'</code></p>