名前空間
変種
操作

コンパイル時有理数演算 (C++11以降)

From cppreference.com
< cpp‎ | numeric
 
 
メタプログラミングライブラリ
型特性
型のカテゴリ
(C++11)
(C++11)(DR*)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11) 
(C++11)
(C++11)
型のプロパティ
(C++11)
(C++11)
(C++14)
(C++11)(C++26で非推奨)
(C++11)(C++20まで*)
(C++11)(C++20で非推奨)
(C++11)
型特性定数
メタ関数
(C++17)
サポートされている操作
関係とプロパティクエリ
型の変更
(C++11)(C++11)(C++11)
型の変換
(C++11)(C++23で非推奨)
(C++11)(C++23で非推奨)
(C++11)
(C++11)(C++20まで*)(C++17)

(C++11)
(C++17)
コンパイル時有理数演算
コンパイル時整数シーケンス
 
コンパイル時有理数演算
(C++11)
算術演算
(C++11)
比較
(C++11)
 

クラステンプレート 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. 1.0 1.1 1.2 1.3 これらの型定義は、std::intmax_tが分母を表現できる場合にのみ宣言されます。
  2. 2.0 2.1 2.2 2.3 これらの型定義は、std::intmax_tが分子を表現できる場合にのみ宣言されます。

[編集] コンパイル時有理数演算

コンパイル時にratioオブジェクトに対する算術演算を実行する、いくつかのエイリアステンプレートが提供されています。

ヘッダー <ratio> で定義
(C++11)
コンパイル時に2つのratioオブジェクトを加算する
(エイリアステンプレート)[編集]
コンパイル時に2つのratioオブジェクトを減算する
(エイリアステンプレート)[編集]
コンパイル時に2つのratioオブジェクトを乗算する
(エイリアステンプレート)[編集]
コンパイル時に2つのratioオブジェクトを除算する
(エイリアステンプレート)[編集]

[編集] コンパイル時有理数比較

コンパイル時にratioオブジェクトに対する比較演算を実行する、いくつかのクラステンプレートが提供されています。

ヘッダー <ratio> で定義
コンパイル時に2つのratioオブジェクトが等しいか比較する
(クラステンプレート) [編集]
コンパイル時に2つのratioオブジェクトが等しくないか比較する
(クラステンプレート) [編集]
コンパイル時に2つのratioオブジェクトがより小さいか比較する
(クラステンプレート) [編集]
コンパイル時に2つのratioオブジェクトが以下であるか比較する
(クラステンプレート) [編集]
コンパイル時に2つのratioオブジェクトがより大きいか比較する
(クラステンプレート) [編集]
コンパイル時に2つのratioオブジェクトが以上であるか比較する
(クラステンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)