84 votes

Pourquoi 'd /= d' ne lance-t-il pas d'exception de division par zéro lorsque d == 0 ?

Je ne comprends pas très bien pourquoi je n'obtiens pas de division par zéro exception :

 int d = 0;
d /= d;

Je m'attendais à obtenir une division par zéro exception mais à la place d == 1 .

Pourquoi d /= d lance-t-il pas une exception de division par zéro lorsque d == 0 ?

0voto

Robert Ramey Points 447

Notez que vous pouvez faire en sorte que votre code génère une exception C++ dans ce cas (et dans d'autres) en utilisant des valeurs numériques sécurisées boost. https://github.com/boostorg/safe_numerics

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X