Reserve a vector of reference_wrapper objects, how it is possible?
<p><a href="http://en.cppreference.com/w/cpp/utility/functional/reference_wrapper/reference_wrapper" rel="nofollow"><code>std::reference_wrapper</code></a> isn't default constructable. So I can't write any of:</p>

<pre><code>std::vector&lt;std::reference_wrapper&lt;int&gt;&gt; vec(10);
std::array&lt;std::reference_wrapper&lt;int&gt;, 3&gt; arr;
</code></pre>

<p>However, and to my surprise, you can invoke the <a href="http://en.cppreference.com/w/cpp/container/vector/reserve" rel="nofollow"><code>std::vector::reserve</code></a> member function of a vector of <code>std::reference_wrapper</code> objects and effectively change its capacity.</p>

<pre><code>std::vector&lt;std::reference_wrapper&lt;int&gt;&gt; vec;  
vec.reserve(10);
</code></pre>

<p><a href="http://coliru.stacked-crooked.com/a/52850b56bb1b1161" rel="nofollow"><strong>Live Demo</strong></a></p>

<p>How is this possible since <code>std::reference_wrapper</code> has no default constructor?</p>