title: C++0x initializer list example
body: <p>I would like to see how this example of existing code would be able to take advantage of the C++0x initializer list feature.</p>
  
  <p>Example0:</p>
  
  <pre><code>#include &lt;vector&gt;
  #include &lt;string&gt;
  struct Ask {
      std::string prompt;
      Ask(std::string a_prompt):prompt(a_prompt){}
  };
  struct AskString : public Ask{
      int min;
      int max;
      AskString(std::string a_prompt, int a_min, int a_max):
          Ask(a_prompt), min(a_min), max(a_max){}
  };
  int main()
  {
      std::vector&lt;Ask*&gt; ui;
      ui.push_back(new AskString("Enter your name: ", 3, 25));
      ui.push_back(new AskString("Enter your city: ", 2, 25));
      ui.push_back(new Ask("Enter your age: "));
  }
  </code></pre>
  
  <p>Would it support something like this:</p>
  
  <p>Example1:</p>
  
  <pre><code>std::vector&lt;Ask*&gt; ui ={
      AskString("Enter your name: ", 3, 25),
      AskString("Enter your city: ", 2, 25),
      Ask("Enter your age: ")
      };
  </code></pre>
  
  <p>Or must it have literals like this?:</p>
  
  <p>Example2:</p>
  
  <pre><code>std::vector&lt;Ask*&gt; ui ={
      {"Enter your name: ", 3, 25},
      {"Enter your city: ", 2, 25},
      {"Enter your age: "}
      };
  </code></pre>
  
  <p>If so how would the difference between AskString and Ask be handled?</p>