title: How to create std::vector subclass with initializer_list support?
body: <p>I'm trying to create <em>MyVector</em> class that inherits from <em>std::vector</em> (to add a few useful methods). Everything works great, but it cannot be initialized with <em>initializer_list</em>:</p>
  <pre><code>    std::vector&lt;int&gt; a = { 4, 2 }; // OK
      MyVector&lt;int&gt; b = { 4, 2 }; // Error
  </code></pre>
  <p>Both VS2015 and gcc does not allow compiling it:</p>
  <pre><code>error: could not convert '{2, 3, 4}' from '&lt;brace-enclosed initializer list&gt;' to 'MyVector&lt;int&gt;'
  </code></pre>
  <p>Why so? I tried explicitly adding constructor with <em>initializer_list</em> param solves the issue (see code below), but why?? Why isn't it inherited from <em>std:vector</em>?</p>
  <pre><code>template &lt;class T&gt;
  class MyVector : public std::vector&lt;T&gt;
  {
  public:
      // Why is this constructor needed???
      MyVector(const std::initializer_list&lt;T&gt;&amp; il)
          : std::vector&lt;T&gt;(il)
      {
      }
  };
  </code></pre>
  <p>P.S. I don't want to add this constructor to avoid writing any other constructors...</p>