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

Die Klassenvorlage std::ratio und zugehörige Vorlagen bieten Unterstützung für rationale Arithmetik zur Compile-Zeit. Jede Instanziierung dieser Vorlage repräsentiert exakt jede endliche rationale Zahl.

Compile-time-Brüche

Definiert im Header <ratio>
(C++11)
repräsentiert exakte rationale Fraktion
(Klassentemplate)

Die folgenden praktischen Typdefinitionen, die den SI-Verhältnissen entsprechen, werden von der Standardbibliothek bereitgestellt:

Definiert im Header <ratio>
Typ Definition
quecto (seit C++26) std:: ratio < 1 , 1000000000000000000000000000000 > (10 -30 ) [1]
ronto (seit C++26) std:: ratio < 1 , 1000000000000000000000000000 > (10 -27 ) [1]
yocto (seit C++11) std:: ratio < 1 , 1000000000000000000000000 > (10 -24 ) [1]
zepto (seit C++11) std:: ratio < 1 , 1000000000000000000000 > (10 -21 ) [1]
atto (seit C++11) std:: ratio < 1 , 1000000000000000000 > (10 -18 )
femto (seit C++11) std:: ratio < 1 , 1000000000000000 > (10 -15 )
pico (seit C++11) std:: ratio < 1 , 1000000000000 > (10 -12 )
nano (seit C++11) std:: ratio < 1 , 1000000000 > (10 -9 )
micro (seit C++11) std:: ratio < 1 , 1000000 > (10 -6 )
milli (seit C++11) std:: ratio < 1 , 1000 > (10 -3 )
centi (seit C++11) std:: ratio < 1 , 100 > (10 -2 )
deci (seit C++11) std:: ratio < 1 , 10 > (10 -1 )
deca (seit C++11) std:: ratio < 10 , 1 > (10 1 )
hecto (seit C++11) std:: ratio < 100 , 1 > (10 2 )
kilo (seit C++11) std:: ratio < 1000 , 1 > (10 3 )
mega (seit C++11) std:: ratio < 1000000 , 1 > (10 6 )
giga (seit C++11) std:: ratio < 1000000000 , 1 > (10 9 )
tera (seit C++11) std:: ratio < 1000000000000 , 1 > (10 12 )
peta (seit C++11) std:: ratio < 1000000000000000 , 1 > (10 15 )
exa (seit C++11) std:: ratio < 1000000000000000000 , 1 > (10 18 )
zetta (seit C++11) std:: ratio < 1000000000000000000000 , 1 > (10 21 ) [2]
yotta (seit C++11) std:: ratio < 1000000000000000000000000 , 1 > (10 24 ) [2]
ronna (seit C++26) std:: ratio < 1000000000000000000000000000 , 1 > (10 27 ) [2]
quetta (seit C++26) std:: ratio < 1000000000000000000000000000000 , 1 > (10 30 ) [2]
  1. 1.0 1.1 1.2 1.3 Diese Typdefinitionen werden nur deklariert, wenn std::intmax_t den Nenner darstellen kann.
  2. 2.0 2.1 2.2 2.3 Diese Typdefinitionen werden nur deklariert, wenn std::intmax_t den Zähler darstellen kann.

Kompilierzeit-Rationalarithmetik

Es werden mehrere Alias-Vorlagen bereitgestellt, die arithmetische Operationen an ratio -Objekten zur Compile-Zeit durchführen.

Definiert im Header <ratio>
(C++11)
addiert zwei ratio Objekte zur Compile-Zeit
(Alias-Template)
subtrahiert zwei ratio Objekte zur Compile-Zeit
(Alias-Template)
multipliziert zwei ratio Objekte zur Compile-Zeit
(Alias-Template)
dividiert zwei ratio Objekte zur Compile-Zeit
(Alias-Template)

Compile-time rationale Vergleichsoperation

Es werden mehrere Klassentemplates bereitgestellt, die Vergleichsoperationen an ratio -Objekten zur Compile-Zeit durchführen.

Definiert im Header <ratio>
vergleicht zwei ratio -Objekte auf Gleichheit zur Compile-Zeit
(Klassentemplate)
vergleicht zwei ratio -Objekte auf Ungleichheit zur Compile-Zeit
(Klassentemplate)
(C++11)
vergleicht zwei ratio -Objekte auf kleiner als zur Compile-Zeit
(Klassentemplate)
vergleicht zwei ratio -Objekte auf kleiner als oder gleich zur Compile-Zeit
(Klassentemplate)
vergleicht zwei ratio -Objekte auf größer als zur Compile-Zeit
(Klassentemplate)
vergleicht zwei ratio -Objekte auf größer als oder gleich zur Compile-Zeit
(Klassentemplate)