Vorzeichenüberlauf aufgrund von Berechnungen in C++20 immer noch undefiniertes Verhalten ist, während Vorzeichenüberlauf aufgrund von Konvertierungen in C++20 gut definiert ist (die Implementierung für Pre-C++20 definiert wurde).
Und Diese Änderung des vorzeichenbehafteten Überlaufs aufgrund der Konvertierung ist darauf zurückzuführen, dass Compiler ab C++20 das Zweierkomplement verwenden müssen.
Meine Frage lautet:
Wenn Compiler ab C++20 das Zweierkomplement verwenden müssen, warum ist dann der vorzeichenbehaftete Überlauf aufgrund der Berechnung nicht genauso genau definiert wie der vorzeichenbehaftete Überlauf aufgrund der Konvertierung?
Das heißt, warum (wie) gibt es einen Unterschied zwischen Überlauf aufgrund der Berechnung und Überlauf aufgrund der Konvertierung. Im Wesentlichen, warum diese beiden Arten von Überläufen unterschiedlich behandelt werden.
Vorzeichenüberlauf aufgrund von [b]Berechnungen[/b] in C++20 immer noch [b]undefiniertes Verhalten[/b] ist, während Vorzeichenüberlauf aufgrund von [b]Konvertierungen[/b] in C++20 gut definiert ist (die [b]Implementierung[/b] für Pre-C++20 definiert wurde).
Und Diese Änderung des vorzeichenbehafteten Überlaufs aufgrund der Konvertierung ist darauf zurückzuführen, dass Compiler ab C++20 das Zweierkomplement verwenden müssen. Meine Frage lautet: Wenn Compiler ab C++20 das Zweierkomplement verwenden müssen, warum ist dann der vorzeichenbehaftete Überlauf aufgrund der Berechnung nicht genauso genau definiert wie der vorzeichenbehaftete Überlauf aufgrund der Konvertierung? Das heißt, warum (wie) gibt es einen Unterschied zwischen Überlauf aufgrund der Berechnung und Überlauf aufgrund der Konvertierung. Im Wesentlichen, warum diese beiden Arten von Überläufen unterschiedlich behandelt werden.
Ich habe Code, der (nicht konstete) UDP-Bytes über recv () Systemanruf empfängt. Der Byte-Puffer wird dann an Code auf Unternehmensebene weitergegeben, der die Bytes liest, indem er so etwas wie:...
Ein Blog-Autor hat die Diskussion über die Dereferenzierung von Nullzeigern angesprochen.
Ich habe hier einige Gegenargumente angeführt.
Seine Hauptargumentation zum Zitieren des Standards lautet wie...
In Cuda nutze ich regelmäßig die Tatsache, dass die Hardware die Breite der Verschiebungen nicht einschränkt. Verhaltensauslöser im folgenden Code, wobei der Druck (oder das unter ihm) immer...
Ich möchte genauer verstehen, wenn neu interpret_cast sicher ist und wenn es undefiniertes Verhalten verursacht. Im Folgenden finden Sie ein Beispielprogramm, das ich zur Diskussion zusammengestellt...
Ich möchte genauer verstehen, wenn neu interpret_cast sicher ist und wenn es undefiniertes Verhalten verursacht. Im Folgenden finden Sie ein Beispielprogramm, das ich zur Diskussion zusammengestellt...