O que o padrão da linguagem C ++ diz sobre como o static_cast lida com a redução do tamanho de um número inteiro?

Gostaria de conhecer as regras especificadas pelo padrão da linguagem C ++ para situações como:

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

Éy garantido ser 200, ou o padrão deixa isso para a implementação decidir? Quão bem vários compiladores aderem ao padrão?

questionAnswers(2)

yourAnswerToTheQuestion