Вообще, оно не должно компилироваться вообще. Размеры массивов должны быть константными выражениями.
То что у вас — расширение компилятора. Не работает в С++14 скорее всего потому, что в С++11 компилятор использует собственное расширение основанное на сишных VLA. А в С++14 — более ограниченные С++ ARB, которые могли войти в С++14, но не вошли.
Antony: Так нельзя делать нигде. Пункт 8.3.4/1 стандарта. Нужно не путать объявление массива с похожим выделением памяти под массив массива через new-expression, хотя оно и здесь бы не сработало: только внешний массив может быть с переменной длиной.