Оба компилятора верны, потому что ваш код имеет неопределенное поведение.
Вы попали в ловушку.{ ",", ";" }
переводится как std::vector{const char*, const char*}
.Поскольку у вас есть указатель, это допустимо синтаксически (так как он вызывает конструктор итератора вектора), но вы используете адрес двух несвязанных строковых литералов, который недопустим, поскольку итераторы должны указывать на один и тот же контейнер.
Чтовам действительно нужно заставить это работать - использовать символьные литералы, а не строковые литералы в списке инициализаторов, такие как
std::vector<char> delimiters = { ',', ';' };