Common mathematical functions | |||||||||||||||||||||||||||||||
Mathematical special functions(C++17) | |||||||||||||||||||||||||||||||
Mathematical constants(C++20) | |||||||||||||||||||||||||||||||
Basic linear algebra algorithms(C++26) | |||||||||||||||||||||||||||||||
Data-parallel types (SIMD)(C++26) | |||||||||||||||||||||||||||||||
Floating-point environment(C++11) | |||||||||||||||||||||||||||||||
Complex numbers | |||||||||||||||||||||||||||||||
Numeric array (valarray ) | |||||||||||||||||||||||||||||||
Pseudo-random number generation | |||||||||||||||||||||||||||||||
Bit manipulation(C++20) | |||||||||||||||||||||||||||||||
Saturation arithmetic(C++26) | |||||||||||||||||||||||||||||||
Factor operations | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
Interpolations | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
Generic numeric operations | |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
C-style checked integer arithmetic | |||||||||||||||||||||||||||||||
|
|
Defined in header <stdckdint.h> | ||
template<class type1,class type2,class type3> bool ckd_sub( type1* result, type2 a, type3 b); | (since C++26) | |
Computes the subtractionx- y and stores the result into*result. The subtraction is performed as if both operands were represented in a signed integer type with infinite range, and the result was then converted from this integer type totype1. If the value assigned to*result correctly represents the mathematical result of the operation, it returnsfalse. Otherwise, it returnstrue. In this case, the value assigned to*result is the mathematical result of the operation wrapped around to the width of*result.
Contents |
a, b | - | integer values |
result | - | address of where result should be stored |
false if the value assigned to*result correctly represents the mathematical result of the subtraction,true otherwise.
The function templateckd_sub
has the same semantics as the correspondingtype-generic macro with the same name specified inC23.
Each of the typestype1,type2, andtype3 is a cv-unqualified signed or unsigned integer type.
It is recommended to produce a diagnostic message iftype2 ortype3 are not suitable integer types, or if*result is not a modifiable lvalue of a suitable integer type.
This section is incomplete Reason: no example |
(C++26) | checked addition operation on two integers (function template)[edit] |
(C++26) | checked multiplication operation on two integers (function template)[edit] |
C documentation forckd_sub |