title: std::shared_ptr and initializer lists
body: <p>The std::shared_ptr constructor isn't behaving as I expected:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;vector&gt;
  
  void func(std::vector&lt;std::string&gt; strings)
  {
      for (auto const&amp; string : strings)
      {
          std::cout &lt;&lt; string &lt;&lt; '\n';
      }
  }
  
  struct Func
  {
      Func(std::vector&lt;std::string&gt; strings)
      {
          for (auto&amp; string : strings)
          {
              std::cout &lt;&lt; string &lt;&lt; '\n';
          }
      }
  };
  
  int main(int argc, const char * argv[])
  {
  
      func({"foo", "bar", "baz"});
      Func({"foo", "bar", "baz"});
      //auto ptr = std::make_shared&lt;Func&gt;({"foo", "bar", "baz"}); // won't compile.
      //auto ptr = std::make_shared&lt;Func&gt;{"foo", "bar", "baz"}; // nor this.
      return 0;
  }
  </code></pre>
  
  <p>Am I doing something wrong or is the compiler? The compiler is:</p>
  
  <p>$ clang++ --version
  Apple clang version 4.0 (tags/Apple/clang-421.0.57) (based on LLVM 3.1svn)</p>
  
  <p>edit: shared_ptr instead of make_shared.</p>
  
  <p>Here's the error:</p>
  
  <pre><code>make -k 
  clang++ -std=c++11 -stdlib=libc++    main.cc   -o main
  main.cc:28:18: error: no matching function for call to 'make_shared'
        auto ptr = std::make_shared&lt;Func&gt;({"foo", "bar", "baz"});
                   ^~~~~~~~~~~~~~~~~~~~~~
  /usr/bin/../lib/c++/v1/memory:4621:1: note: candidate function not viable:
       requires 0 arguments, but 1 was provided
  make_shared(_Args&amp;&amp; ...__args)
  ^
  1 error generated.
  </code></pre>