Does c++ standard support non-const data member being as array bounds?
<p>See the following code:</p>

<pre><code>class X {
    int a;
public:
    void foo() {
        char arr[a]; // a is not a constant variable, but g++ doesn't report error, why?
    }
};
</code></pre>

<p>I always thought that only constant expression can be used in array bounds, until today I met the strange code above. Both g++ and clang++ can compile it successfully. But I can't find any description in C++ standard for supporting it. Is it an extented content of compiler? And where can I find some description about it?</p>
