title: c++11 struct initialization compilation error
body: <pre><code>struct SS {int a; int s;};
  
  int main ()
  {
     vector&lt;SS&gt; v;
     v.push_back(SS{1, 2});
  }
  </code></pre>
  
  <p>The code can be compiled without any error. However, when the struct is initialized in class, I got compilation error. Can anyone explain it?</p>
  
  <pre><code>struct SS {int a = 0; int s = 2;};
  </code></pre>
  
  <p>Error:</p>
  
  <pre><code>In function ‘int main()’:
  error: no matching function for call to ‘SS::SS(&lt;brace-enclosed initializer list&gt;)’
       v.push_back(SS{1, 2});
                          ^
  note: candidates are:
  note: constexpr SS::SS()
   struct SS {int a = 0; int s = 2;};
          ^
  note:   candidate expects 0 arguments, 2 provided
  note: constexpr SS::SS(const SS&amp;)
  note:   candidate expects 1 argument, 2 provided
  note: constexpr SS::SS(SS&amp;&amp;)
  note:   candidate expects 1 argument, 2 provided
  </code></pre>