Namespaces
Variants

ckd_sub

From cppreference.net
Défini dans l'en-tête <stdckdint.h>
template < class type1, class type2, class type3 >
bool ckd_sub ( type1 * result, type2 a, type3 b ) ;
(depuis C++26)

Calcule la soustraction x - y et stocke le résultat dans * result . La soustraction est effectuée comme si les deux opérandes étaient représentés dans un type entier signé avec une plage infinie, puis le résultat était converti de ce type entier vers type1 . Si la valeur assignée à * result représente correctement le résultat mathématique de l'opération, elle retourne false . Sinon, elle retourne true . Dans ce cas, la valeur assignée à * result est le résultat mathématique de l'opération enroulé sur la largeur de * result .

Table des matières

Paramètres

a, b - valeurs entières
result - adresse où le résultat doit être stocké

Valeur de retour

false si la valeur assignée à * result représente correctement le résultat mathématique de la soustraction, true sinon.

Note

Le modèle de fonction ckd_sub possède la même sémantique que la macro générique de type correspondante portant le même nom spécifiée dans C23 .

Chacun des types type1 , type2 , et type3 est un type entier signé ou non signé sans qualificatif cv.

Il est recommandé de produire un message de diagnostic si type2 ou type3 ne sont pas des types entiers appropriés, ou si * result n'est pas une lvalue modifiable d'un type entier approprié.

Exemple

Références

  • Norme C++26 (ISO/CEI 14882:2026) :
  • 29.11.2 Opérations entières vérifiées

Voir aussi

(C++26)
opération d'addition vérifiée sur deux entiers
(modèle de fonction)
(C++26)
opération de multiplication vérifiée sur deux entiers
(modèle de fonction)
documentation C pour ckd_sub