Why can't I emplace ifstreams in a vector? <p>The following example program doesn't compile for me on either clang 3.1 or gcc 4.8:</p> <pre><code>#include &lt;fstream&gt; #include &lt;vector&gt; using namespace std; int main() { vector&lt;ifstream&gt; bla; bla.emplace_back("filename"); return 0; } </code></pre> <p>However, I thought emplace_back should </p> <blockquote> <p>"Insert a new element at the end of the vector, right after its current last element. This new element is constructed in place using args as the arguments for its construction."</p> </blockquote> <p>Does anyone know why this doesn't compile then? did I misunderstand or are the library implementations not yet complete?</p>