title: Why do I get error C2797 in this example?
body: <p>I have the following code:</p>
  
  <pre><code>struct X
  {
      int a, b;
  };
  
  class Y
  {
  public:
      Y(const X&amp; x) : x_{x} {};  // C2797 error
  
  private:
      X x_;
  };
  </code></pre>
  
  <p>Compiled with MSVC2013 Update 3, it complains about a <a href="http://msdn.microsoft.com/en-us/library/dn793970.aspx" rel="nofollow">C2797 error</a>. If I replace the curly braces with parantheses (i.e. <code>x_(x)</code>) the program compiles successfully.</p>
  
  <p>Why does this happen? Is this compiler behaviour C++11-compliant? What about C++14? </p>
  
  <p><strong>Edit:</strong> To be more clear, I am not sure if <code>x_{x}</code> above should, according to the standard, call <code>X(std::initializer_list)</code> or if it's a valid syntax for calling <code>X(const X&amp;)</code>. As far as I know, it is the latter. Am I right?</p>