¿Qué dice el estándar del lenguaje C ++ sobre cómo static_cast maneja la reducción del tamaño de un entero?

Me gustaría conocer las reglas especificadas por el estándar del lenguaje C ++ para situaciones como:

long x = 200;
short y = static_cast<short>(x);

Esy garantizado para ser 200, o el estándar deja esto a la implementación para decidir? ¿Qué tan bien se adhieren varios compiladores al estándar?

Respuestas a la pregunta(2)

Su respuesta a la pregunta