title: Why can an initializer-list not be used as an argument?
body: <pre><code>struct X
  {
      int a;
      int b;
  };
  
  int f(X x)
  {
      return x.a + x.b;
  }
  
  int main()
  {
      int n = f({1, 2});
  }
  </code></pre>
  
  <p>Visual Studio 2012 (Nov CTP) reports:</p>
  
  <pre><code>error C2664: 'int f(const X &amp;)' : cannot convert parameter 1 from
  'initializer-list' to 'X'
  
  Reason: cannot convert from 'initializer-list' to 'X'
  Only an initializer-list with zero or one elements can be converted to this type
  
  Build FAILED.
  </code></pre>