私はC ++に比較的慣れていません。最初から、次のようなことはできないと教えられてきました。
int x;
cin >> x;
int array[x];
代わりに、動的メモリを使用する必要があります。ただし、最近、上記がコンパイルされることを発見しました(ただし、ISO C ++で禁止されているというペダンティックな警告が表示されます)。標準で許可されていない場合、それを行うのは明らかに悪い考えであることは知っていますが、以前はこれが可能であることさえ知りませんでした。
私の質問は、標準で許可されていない場合、動的に割り当てられない可変長配列を g++ が許可するのはなぜですか? また、コンパイラがそれを行うことが可能である場合、なぜそれが標準にないのですか?