Namespaces
Variants

Compile-time rational arithmetic (since C++11)

From cppreference.net
Metaprogramming library
Type traits
Type categories
(C++11)
(C++11) ( DR* )
Type properties
(C++11)
(C++11)
(C++14)
(C++11) (deprecated in C++26)
(C++11) ( until C++20* )
(C++11) (deprecated in C++20)
(C++11)
Type trait constants
Metafunctions
(C++17)
Supported operations
Relationships and property queries
Type modifications
Type transformations
(C++11) (deprecated in C++23)
(C++11) (deprecated in C++23)
(C++11)
(C++11) ( until C++20* ) (C++17)

Compile-time rational arithmetic
Compile-time integer sequences
Compile time rational arithmetic

La plantilla de clase std::ratio y las plantillas asociadas proporcionan soporte para aritmética racional en tiempo de compilación. Cada instanciación de esta plantilla representa exactamente cualquier número racional finito.

Fracciones en tiempo de compilación

Definido en el encabezado <ratio>
(C++11)
representa una fracción racional exacta
(plantilla de clase)

La biblioteca estándar proporciona los siguientes typedefs de conveniencia que corresponden a las razones SI:

Definido en el encabezado <ratio>
Tipo Definición
quecto (desde C++26) std:: ratio < 1 , 1000000000000000000000000000000 > (10 -30 ) [1]
ronto (desde C++26) std:: ratio < 1 , 1000000000000000000000000000 > (10 -27 ) [1]
yocto (desde C++11) std:: ratio < 1 , 1000000000000000000000000 > (10 -24 ) [1]
zepto (desde C++11) std:: ratio < 1 , 1000000000000000000000 > (10 -21 ) [1]
atto (desde C++11) std:: ratio < 1 , 1000000000000000000 > (10 -18 )
femto (desde C++11) std:: ratio < 1 , 1000000000000000 > (10 -15 )
pico (desde C++11) std:: ratio < 1 , 1000000000000 > (10 -12 )
nano (desde C++11) std:: ratio < 1 , 1000000000 > (10 -9 )
micro (desde C++11) std:: ratio < 1 , 1000000 > (10 -6 )
milli (desde C++11) std:: ratio < 1 , 1000 > (10 -3 )
centi (desde C++11) std:: ratio < 1 , 100 > (10 -2 )
deci (desde C++11) std:: ratio < 1 , 10 > (10 -1 )
deca (desde C++11) std:: ratio < 10 , 1 > (10 1 )
hecto (desde C++11) std:: ratio < 100 , 1 > (10 2 )
kilo (desde C++11) std:: ratio < 1000 , 1 > (10 3 )
mega (desde C++11) std:: ratio < 1000000 , 1 > (10 6 )
giga (desde C++11) std:: ratio < 1000000000 , 1 > (10 9 )
tera (desde C++11) std:: ratio < 1000000000000 , 1 > (10 12 )
peta (desde C++11) std:: ratio < 1000000000000000 , 1 > (10 15 )
exa (desde C++11) std:: ratio < 1000000000000000000 , 1 > (10 18 )
zetta (desde C++11) std:: ratio < 1000000000000000000000 , 1 > (10 21 ) [2]
yotta (desde C++11) std:: ratio < 1000000000000000000000000 , 1 > (10 24 ) [2]
ronna (desde C++26) std:: ratio < 1000000000000000000000000000 , 1 > (10 27 ) [2]
quetta (desde C++26) std:: ratio < 1000000000000000000000000000000 , 1 > (10 30 ) [2]
  1. 1.0 1.1 1.2 1.3 Estos typedefs solo se declaran si std::intmax_t puede representar el denominador.
  2. 2.0 2.1 2.2 2.3 Estos typedefs solo se declaran si std::intmax_t puede representar el numerador.

Aritmética racional en tiempo de compilación

Se proporcionan varias plantillas de alias que realizan operaciones aritméticas en ratio objetos en tiempo de compilación.

Definido en el encabezado <ratio>
(C++11)
suma dos objetos ratio en tiempo de compilación
(plantilla de alias)
resta dos objetos ratio en tiempo de compilación
(plantilla de alias)
multiplica dos objetos ratio en tiempo de compilación
(plantilla de alias)
divide dos objetos ratio en tiempo de compilación
(plantilla de alias)

Comparación racional en tiempo de compilación

Se proporcionan varias plantillas de clase que realizan operaciones de comparación en ratio objetos en tiempo de compilación.

Definido en el encabezado <ratio>
compara dos objetos ratio para igualdad en tiempo de compilación
(plantilla de clase)
compara dos objetos ratio para desigualdad en tiempo de compilación
(plantilla de clase)
(C++11)
compara dos objetos ratio para menor que en tiempo de compilación
(plantilla de clase)
compara dos objetos ratio para menor o igual que en tiempo de compilación
(plantilla de clase)
compara dos objetos ratio para mayor que en tiempo de compilación
(plantilla de clase)
compara dos objetos ratio para mayor o igual que en tiempo de compilación
(plantilla de clase)