title: Constructor list initialization of an empty vector
body: <p>Which is the appropriate way (if any) to list initialize an empty vector on the class ctor assuming?:</p>
  
  <pre><code>class Temp {
      private:
          int vals;
          vector&lt;int&gt; A;
      public:
          Temp(int x);
  };
  </code></pre>
  
  <p>All of these seem to work, but is it even necessary to do #1 or #2, or is declaration enough?:</p>
  
  <p><strong>1: Calling vector constructor explicitly</strong></p>
  
  <p><code>Temp::Temp(int x):vals(x), A() { }</code></p>
  
  <p><strong>2: Using vector list initialization within class ctor list initialization</strong></p>
  
  <p><code>Temp::Temp(int x):vals(x), A{} { }</code></p>
  
  <p><strong>3: Excluding from class ctor list initialization (declaration only)</strong></p>
  
  <p><code>Temp::Temp(int x):vals(x) { }</code></p>
  
  <p>There doesnt appear to be any value from including the vector member in the class ctor initialization list since its default constructor is called when we declare it and returns an empty vector.</p>