Это компилируется для меня: (g ++ 4.6 с -std=c++0x
).Но он не компилируется с -pedantic
(спасибо @MarkB).Вместо этого он предупреждает, что " template.cpp: 7: 12: предупреждение: ISO C ++ запрещает массив переменной длины 'n' [-Wvla] "
int main(int argc, char ** argv) {
int n[argc];
}
Таким образом, размер n
не может быть известен во время компиляции компилятором. Является ли это расширением GNU для C ++? Похоже, это расширение GNU, и что VLA не являются официальной частью C ++ 11.
(Конечно, япросто играть с компилятором. Так что возьмите это с щепоткой соли.)