В любом обычном компиляторе для C или C ++ массивы переменной длины работают нормально
В зависимости от того, как я читаю это предложение, оно либо тавтологическое, либо бессмысленное. Да, нормальные вещи работают нормально, но массивы VLA «работают» в C ++ только в том смысле, что они не определены языком.
VLA определены C и существуют в течение 20 лет. И, да, многие компиляторы C - но не компиляторы C ++ - поддерживают их. Ярким исключением является компилятор Microsoft, которого нет. Он не соответствует стандарту C99 (не говоря уже о C11, C14 или C17). Можно сказать, что они немного позади. Похоже, их позиция заключается в том, что они будут реализовывать столько языка Си, сколько им удобно в контексте компилятора С ++. Те части C, которые не являются частью C ++, не подходят.
Это ясно: поддержание актуальности компилятора C не является приоритетом для Microsoft.
Просто мне нужно, чтобы эта штука работала в VS Community 2019, потому что я хочу использовать ее как IDE.
Простая правда в том, что если выхотите работать в современном C, вы не можете использовать компилятор Microsoft. Возможно, вы сможете понять, как настроить IDE для использования компилятора GNU. Однако в какой-то момент вы можете начать спрашивать, стоит ли вам времени бороться с системой, столь враждебной вашим целям.