Espacios de nombres
Variantes

ckd_sub

De cppreference.com
 
 
 
Definido en el archivo de encabezado <stdckdint.h>
template< class type1, class type2, class type3 > bool ckd_sub( type1* result, type2 a, type3 b );
(desde C++26)

Calcula la resta x - y y almacena el resultado en *result. La resta se realiza como si ambos operandos estuvieran representados en un tipo entero con signo de rango infinito, y el resultado se convierte luego de este tipo entero a type1. Si el valor asignado a *result representa correctamente el resultado matemático de la operación, devuelve false. De lo contrario, devuelve true. En este caso, el valor asignado a *result es el resultado matemático de la operación envuelto al ancho de *result.

Parámetros

a, b - Valores enteros.
result - Dirección donde se debe almacenar el resultado.

Valor de retorno

false si el valor asignado a *result representa correctamente el resultado matemático de la resta, true en caso contrario.

Nota

La plantilla de función ckd_sub tiene la misma semántica que la macro genérica de tipo correspondiente con el mismo nombre especificada en C23.

Cada uno de los tipos type1, type2, y type3 es un tipo entero con signo o sin signo no calificado por cv.

Se recomienda producir un mensaje de diagnóstico si type2 o type3 no son tipos de enteros adecuados, o si *result no es un l-valor modificable de un tipo entero adecuado.

Ejemplo

Referencias

  • Estándar C++26 (ISO/IEC 14882:2026):
  • 29.11.2 Operaciones de enteros comprobadas

Véase también

Operación de suma comprobada en dos números enteros.
(plantilla de función) [editar]
Operación de multiplicación con comprobación de desbordamiento entre dos enteros.
(plantilla de función) [editar]
Documentación de C para ckd_sub