title: Safe to std:move a member?
body: <p>Have found comparable questions but not exactly with such a case.
  Take the following code for example:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;string&gt;
  #include &lt;vector&gt;
  
  struct Inner
  {
      int a, b;
  };
  
  struct Outer
  {
      Inner inner;    
  };
  
  
  std::vector&lt;Inner&gt; vec;
  
  int main()
  {
      Outer * an_outer = new Outer;
  
      vec.push_back(std::move(an_outer-&gt;inner));
  
      delete an_outer;
  }
  </code></pre>
  
  <p>Is this safe? Even if those were polymorphic classes or ones with custom destructors?</p>
  
  <p>My concern regards the instance of "<code>Outer</code>" which has a member variable "<code>inner</code>" moved away. From what I learned, moved things should not be touched anymore. However does that include the delete call that is applied to <code>outer</code> and would technically call delete on <code>inner</code> as well (and thus "touch" it)?</p>