title: Built-in array with variable size?
body: <p>Chapter 2.3.2 of The C++ Programming Language lists this constructor:</p>
  <pre><code>class Vector {
  public:
      Vector(int s) :elem{new double[s]}, sz{s} { }
  private:
      double* elem;
      int sz;
  };
  </code></pre>
  <p>As far as I know, the array size must be a constant expression, and <code>s</code> isn't. Is this legal? If so, why?</p>