Функция с модификатором noexcept гарантирует, что она не выбросит исключение. Если во время выполнения такой функции происходит выброс исключения, то стандартное поведение — немедленное завершение программы вызовом функции std::terminate(). Это происходит потому, что компилятор может оптимизировать код, предполагая, что исключения не будут происходить, и не будет генерировать код для их обработки.
Правильный вариант: программа завершится вызовом std::terminate()