名前空間
変種
操作

std::ratio

提供: cppreference.com
< cpp‎ | numeric‎ | ratio
ヘッダ <ratio> で定義
template<

    std::intmax_t Num,
    std::intmax_t Denom = 1

> class ratio;
(C++11およびそれ以降)

クラステンプレート std::ratio はコンパイル時有理数算術のサポートを提供します。 このテンプレートの各実体化は、その分子と分母が std::intmax_t 型のコンパイル時定数として表現できる限り、任意の有限の有理数を正確に表現します。 Denom はゼロであってはならず、最も負な値と等しくあってはなりません。 分子と分母は自動的に約分されます。

SI 接頭辞に対応するいくつかの便利な typedef が標準ライブラリによって提供されます。

ヘッダ <ratio> で定義
定義
yocto std::ratio<1, 1000000000000000000000000> (std::intmax_t がその分母を表現できる場合)
zepto std::ratio<1, 1000000000000000000000> (std::intmax_t がその分母を表現できる場合)
atto std::ratio<1, 1000000000000000000>
femto std::ratio<1, 1000000000000000>
pico std::ratio<1, 1000000000000>
nano std::ratio<1, 1000000000>
micro std::ratio<1, 1000000>
milli std::ratio<1, 1000>
centi std::ratio<1, 100>
deci std::ratio<1, 10>
deca std::ratio<10, 1>
hecto std::ratio<100, 1>
kilo std::ratio<1000, 1>
mega std::ratio<1000000, 1>
giga std::ratio<1000000000, 1>
tera std::ratio<1000000000000, 1>
peta std::ratio<1000000000000000, 1>
exa std::ratio<1000000000000000000, 1>
zetta std::ratio<1000000000000000000000, 1> (std::intmax_t がその分子を表現できる場合)
yotta std::ratio<1000000000000000000000000, 1> (std::intmax_t がその分子を表現できる場合)

[編集] メンバ型

メンバ型 定義
type std::ratio<num, den>

[編集] メンバオブジェクト

constexpr intmax_t num
[static]
sign(Num) * sign(Denom) * abs(Num) / gcd(Num, Denom) と等しい std::intmax_t 型の constexpr な値
(パブリック静的メンバ定数)
constexpr intmax_t den
[static]
abs(Denom) / gcd(Num, Denom) と等しい std::intmax_t 型の constexpr な値
(パブリック静的メンバ定数)