Tatsächlich können Sie einen Überlauf nicht einmal zuverlässig erkennen, da ein Überlauf in vorzeichenbehafteten ganzzahligen Operationen zu undefiniertem Verhalten führt. Wenn der Compiler erkennt, dass ein Code-Pfad nur im Falle eines Überlaufs erreicht wird, darf er ihn vollständig optimieren (da er im undefinierten Verhalten alles tun kann). Vorzeichenlose Typen unterscheiden sich darin, dass sie Überlaufeigenschaften definiert haben (sie führen die Modularithmetik durch).
Die einzige Möglichkeit, einen Überlauf bei Typen mit Vorzeichen zu erkennen, besteht darin, vorher die entsprechende Prüfung durchzuführen, was ziemlich teuer ist. Es ist fast immer viel effizienter, Dinge so zu konstruieren, dass eine Invariante Ihres Algorithmus sicherstellt, dass es keinen Überlauf geben kann.
Was Ressourcen auf den möglichen Überlauf erkennen, bevor es geschieht, siehe https://stackoverflow.com/a/199413/445525
Stattdessen roh ganzzahlige Werte zu verwenden, Sie Objekte mit überladenen arithmetischen Operatoren, die Ausnahmen nutzen könnten, wenn ein Überlauf auftritt werfen. – jamesdlin
Was ist die Operation, die Sie auf den Zahlen machen? – Baget
@Baget könnte alles sein. Addition, Subtraktion, Multiplikation, Exponent, usw. hängt vom Programm ab. –