Я сейчас в шоке, но уже почти отошел.
Выяснилось, что все это время в С++ можно было так
#include <iostream>
int main() {
size_t size;
std::cin >> size;
int array[size];
}
Т.е. создавать массив динамического размера на стеке! Вот так просто! А я к ЕГЭ готовился и new/delete осваивал, чтобы задачки закодить как надо.
Чуть легче мне стало, когда мне сказали, что все-таки это не по стандарту.
Я перебрал кучу компиляторов и версий языка - можно! Только clang 3.2 сдался, а g++ ниже 4.1.2 не нашел.
А потом я добрался до msvc и увидел заветное
error C2131: expression did not evaluate to a constant
Я до 2018 года только msvc пользовался и знать не знал какая жуть может происходить. Мне нужно выпить.