title: Accumulating many vectors into a single container w/o copying
body: <p>Is it possible in C++11 to accumulate many <code>std::vector</code>s, each returned by given a function (whose API I cannot change), into a <code>std</code> container without copying any element?</p>
  
  <pre><code>std::vector&lt;int&gt; make_vect();
  container acc;                           // what is container?
  do {
      acc.append(std::move(make_vect()));  // how to implement this?
  } while(acc.size() &lt; n);
  </code></pre>
  
  <p><strong>Note 1</strong> that elements must not be copied even if they have no move constructor of move assignment operator, such as <code>int</code> in the example. So you can move a chunk of elements (by copying a pointer), but not individual elements.</p>
  
  <p><strong>Note 2</strong> that <code>container</code> must allow for iteration through <em>all</em> accumulated elements using a single iterator. So <code>std::vector&lt;std::vector&lt;&gt;&gt;</code> or similar is <em>not</em> allowed.</p>
  
  <p>Clearly, it is straightforward to write some container allowing this or to use <code>std::list&lt;std::vector&lt;&gt;&gt;</code> and provide your own iterator, but does the <code>std</code> library provide the desired functionality without such user-written additions?</p>
  
  <p>It seems that the requested functionality is nothing particularly outlandish and I'm surprised how hard (if not impossible) it is even with C++11.</p>