コンパイル時有理数演算 (C++11以降)
From cppreference.com
クラステンプレート std::ratio および関連テンプレートは、コンパイル時の有理数演算サポートを提供します。このテンプレートの各インスタンス化は、任意の有限な有理数を正確に表現します。
[編集] コンパイル時分数
| ヘッダー
<ratio> で定義 | |
| (C++11) |
正確な有理数を表現する (クラステンプレート) |
SI接頭語に対応する以下の便利な型定義が標準ライブラリによって提供されています。
| ヘッダー
<ratio> で定義 | |
| 型 | 定義 |
quecto (C++26以降) |
std::ratio<1, 1000000000000000000000000000000> (10-30)[1] |
ronto (C++26以降) |
std::ratio<1, 1000000000000000000000000000> (10-27)[1] |
yocto (C++11以降) |
std::ratio<1, 1000000000000000000000000> (10-24)[1] |
zepto (C++11以降) |
std::ratio<1, 1000000000000000000000> (10-21)[1] |
atto (C++11以降) |
std::ratio<1, 1000000000000000000> (10-18) |
femto (C++11以降) |
std::ratio<1, 1000000000000000> (10-15) |
pico (C++11以降) |
std::ratio<1, 1000000000000> (10-12) |
nano (C++11以降) |
std::ratio<1, 1000000000> (10-9) |
micro (C++11以降) |
std::ratio<1, 1000000> (10-6) |
milli (C++11以降) |
std::ratio<1, 1000> (10-3) |
centi (C++11以降) |
std::ratio<1, 100> (10-2) |
deci (C++11以降) |
std::ratio<1, 10> (10-1) |
deca (C++11以降) |
std::ratio<10, 1> (101) |
hecto (C++11以降) |
std::ratio<100, 1> (102) |
kilo (C++11以降) |
std::ratio<1000, 1> (103) |
mega (C++11以降) |
std::ratio<1000000, 1> (106) |
giga (C++11以降) |
std::ratio<1000000000, 1> (109) |
tera (C++11以降) |
std::ratio<1000000000000, 1> (1012) |
peta (C++11以降) |
std::ratio<1000000000000000, 1> (1015) |
exa (C++11以降) |
std::ratio<1000000000000000000, 1> (1018) |
zetta (C++11以降) |
std::ratio<1000000000000000000000, 1> (1021)[2] |
yotta (C++11以降) |
std::ratio<1000000000000000000000000, 1> (1024)[2] |
ronna (C++26以降) |
std::ratio<1000000000000000000000000000, 1> (1027)[2] |
quetta (C++26以降) |
std::ratio<1000000000000000000000000000000, 1> (1030)[2] |
- ↑ 1.0 1.1 1.2 1.3 これらの型定義は、std::intmax_tが分母を表現できる場合にのみ宣言されます。
- ↑ 2.0 2.1 2.2 2.3 これらの型定義は、std::intmax_tが分子を表現できる場合にのみ宣言されます。
[編集] コンパイル時有理数演算
コンパイル時にratioオブジェクトに対する算術演算を実行する、いくつかのエイリアステンプレートが提供されています。
| ヘッダー
<ratio> で定義 | |
| (C++11) |
コンパイル時に2つのratioオブジェクトを加算する(エイリアステンプレート) |
| (C++11) |
コンパイル時に2つのratioオブジェクトを減算する(エイリアステンプレート) |
| (C++11) |
コンパイル時に2つのratioオブジェクトを乗算する(エイリアステンプレート) |
| (C++11) |
コンパイル時に2つのratioオブジェクトを除算する(エイリアステンプレート) |
[編集] コンパイル時有理数比較
コンパイル時にratioオブジェクトに対する比較演算を実行する、いくつかのクラステンプレートが提供されています。
| ヘッダー
<ratio> で定義 | |
| (C++11) |
コンパイル時に2つのratioオブジェクトが等しいか比較する(クラステンプレート) |
| (C++11) |
コンパイル時に2つのratioオブジェクトが等しくないか比較する(クラステンプレート) |
| (C++11) |
コンパイル時に2つのratioオブジェクトがより小さいか比較する(クラステンプレート) |
| (C++11) |
コンパイル時に2つのratioオブジェクトが以下であるか比較する(クラステンプレート) |
| (C++11) |
コンパイル時に2つのratioオブジェクトがより大きいか比較する(クラステンプレート) |
| (C++11) |
コンパイル時に2つのratioオブジェクトが以上であるか比較する(クラステンプレート) |