How to add object with expensive dtor to vector without emplace_back()
<p>I have an object <code>RenderBuffer</code> that creates an OpenGL Buffer as part of it's constructor, and destroys it as part of it's destructor.  It's a very expensive operation.  This object has no default constructor, so it's either usually put in an initialization list or pushed into the back of a vector if there's many of them:</p>

<pre><code>Window::Window(Renderer &amp; render)
    : m_renderBuffer(render) // sometimes looks like this
{
    m_multipleBuffer.push_back(RenderBuffer(render)) // othertimes can look like this
}
</code></pre>

<p>the latter instance with the vector causes the destructor to be called, causing problems.  </p>

<p>I am using VS2010 which lacks the <code>emplace_back()</code> that would make this work.  What can I do?  Should I abandon the RAII type of coding style and give my classes an <code>init(...)</code> method?  Is there a way to get this working with copy constructors?  And if there is, is it worth the effort over just using initialization methods (move constructors for each class would be a lot of boilerplate)? </p>