Czy static_cast może rzucić wyjątek w C ++?

Czy można bezpiecznie założyć, że static_cast nigdy nie wyśle ​​wyjątku?

W przypadku rzutowania int na Enum wyjątek nie jest generowany, nawet jeśli jest nieprawidłowy. Czy mogę polegać na tym zachowaniu? Ten następujący kod działa.

enum animal {
  CAT = 1,
  DOG = 2
};

int y = 10;
animal x = static_cast<animal>(y);

questionAnswers(4)

yourAnswerToTheQuestion