title: C++ "move from" container
body: <p>In C++11, we can get an efficiency boost by using <code>std::move</code> when we want to move (destructively copy) values into a container:</p>
  
  <pre><code>SomeExpensiveType x = /* ... */;
  vec.push_back(std::move(x));
  </code></pre>
  
  <p>But I can't find anything going the other way. What I mean is something like this:</p>
  
  <pre><code>SomeExpensiveType x = vec.back(); // copy!
  vec.pop_back(); // argh
  </code></pre>
  
  <p>This is more frequent (the copy-pop) on adapter's like <code>stack</code>. Could something like this exist:</p>
  
  <pre><code>SomeExpensiveType x = vec.move_back(); // move and pop
  </code></pre>
  
  <p>To avoid a copy? And does this already exist? I couldn't find anything like that in n3000. </p>
  
  <p>I have a feeling I'm missing something painfully obvious (like the needlessness of it), so I am prepared for "ru dum". :3</p>