Namespaces
Variants

ckd_mul

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

Berechnet die Multiplikation x × y und speichert das Ergebnis in * result . Die Multiplikation 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 umgewrappt 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 Multiplikation korrekt darstellt, true andernfalls.

Hinweis

Die Funktionsvorlage ckd_mul 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 Integer-Operationen

Siehe auch

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