Namespaces
Variants

ckd_sub

From cppreference.net
Definiert im Header <stdckdint.h>
template < class type1, class type2, class type3 >
bool ckd_sub ( type1 * result, type2 a, type3 b ) ;
(seit C++26)

Berechnet die Subtraktion x - y und speichert das Ergebnis in * result . Die Subtraktion wird so durchgeführt, als ob beide Operanden in einem vorzeichenbehafteten Ganzzahltyp mit unendlichem Wertebereich dargestellt wären, und das Ergebnis dann von diesem Ganzzahltyp in type1 konvertiert wurde. Wenn der zugewiesene Wert für * result das mathematische Ergebnis der Operation korrekt darstellt, wird false zurückgegeben. Andernfalls wird true zurückgegeben. In diesem Fall ist der zugewiesene Wert für * result das mathematische Ergebnis der Operation, das auf die Breite von * result umgebrochen wurde.

Inhaltsverzeichnis

Parameter

a, b - Ganzzahlwerte
result - Adresse, an der das Ergebnis gespeichert werden soll

Rückgabewert

false wenn der Wert, der * result zugewiesen wurde, das mathematische Ergebnis der Subtraktion korrekt darstellt, true andernfalls.

Hinweis

Die Funktionsvorlage ckd_sub hat dieselbe Semantik wie das entsprechende typgenerische Makro mit demselben Namen, das in C23 spezifiziert ist.

Jeder der Typen type1 , type2 und type3 ist ein cv-unqualifizierter vorzeichenbehafteter oder vorzeichenloser Ganzzahltyp.

Es wird empfohlen, eine Diagnosemeldung auszugeben, wenn type2 oder type3 keine geeigneten Integer-Typen sind, oder wenn * result kein modifizierbarer Lvalue eines geeigneten Integer-Typs ist.

Beispiel

Referenzen

  • C++26-Standard (ISO/IEC 14882:2026):
  • 29.11.2 Geprüfte Ganzzahloperationen

Siehe auch

(C++26)
GeprÜfte Additionsoperation für zwei Ganzzahlen
(Funktions-Template)
(C++26)
GeprÜfte Multiplikationsoperation für zwei Ganzzahlen
(Funktions-Template)
C-Dokumentation für ckd_sub