int であるパラメーターに応じてサイズで配列が宣言される単純な関数があります。
void f(int n){
char a[n];
};
int main() {
return 0;
}
このコードはGNU C++ では正常にコンパイルされますが、MSVC 2005 ではコンパイルされません。
次のコンパイル エラーが発生します。
.\main.cpp(4) : error C2057: expected constant expression
.\main.cpp(4) : error C2466: cannot allocate an array of constant size 0
.\main.cpp(4) : error C2133: 'a' : unknown size
これを修正するにはどうすればよいですか?
(新規/削除を使用せずに、MSVCでこれを機能させることに興味があります)