title: auto and brace initialization in C++11/C++14
body: <p>When I compile the below code with clang and gcc <code>T</code> is deduced differently.</p>
  
  <pre><code>#include&lt;initializer_list&gt; //for clang
  
  //to see how T is deduced(form compiler error).
  template&lt;typename T&gt;
  void foo(T);
  
  int main() {
      auto var1{2};
      foo(var1);
  }
  </code></pre>
  
  <p>Here is what I got.</p>
  
  <pre><code>clang 3.6(c++11/c++14)
  gcc 4.9(c++11/c++14) 
  T = std::initializer_list&lt;int&gt;
  
  gcc 5.1(c++11/c++14)
  T = int
  </code></pre>
  
  <p>I think <code>T</code> should be <code>std::initializer_list&lt;int&gt;</code>.</p>
  
  <p>Why is <code>T = int</code> in gcc 5.1?</p>