G++ コンパイラでは、次のような配列の初期化が許可されていることに気付きました。
vector<vector<string> > partition(string s) {
const int len = s.size();
vector<vector<string> > subPalins[len+1] ;
subPalins[0] = vector<vector<string> >();
subPalins[0].push_back(vector<string>());
bool isPalin[len][len];
...
return subPalins[len];
}
配列 subPalins のサイズは、定数変数である len です。コンパイル時に配列のサイズを決定する必要があるため、可変サイズの配列を初期化することは許可されていないことを覚えています。ここのlenは定数ですが、それでも変数であり、なぜこれが許可されているのかわかりません。