title: Emplace an aggregate in std::vector
body: <p>I tried to initialize the std::vector </p>
  
  <pre><code>std::vector&lt;Particle&gt; particles;
  </code></pre>
  
  <p>with instances of the simple struct </p>
  
  <pre><code>struct Particle {
      int id;
      double x;
      double y;
      double theta;
      double weight;
  };
  </code></pre>
  
  <p>by using emplace with an initializer list:</p>
  
  <pre><code>num_particles = 1000;
  for (int i = 0; i &lt; num_particles; i++)
  {
      particles.emplace_back({ i,0.0,0.0,0.0,1 });
  }
  </code></pre>
  
  <p>But I get the error</p>
  
  <blockquote>
    <p>C2660 "std::vector>::emplace_back":
    Function doesn't accept one argument</p>
  </blockquote>
  
  <p>How can I fix that? </p>