最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

type-alias
<ratio>

# std::ratio_subtract(C++11)

    namespace std {
      template <class R1, class R2>
      using ratio_subtract = …;
    }

## 概要

`ratio_subtract`は、左辺の`ratio`から右辺の`ratio`を減算した`ratio`型を作るエイリアステンプレートである。

## 効果

減算結果は、`ratio<R1::num * R2::den - R2::num * R1::den, R1::den * R2::den>`という型になる。

実装によっては、演算アルゴリズムによってオーバーフローが起こる可能性がある。オーバーフローが起こった場合、プログラムは不適格となる。

## 例

    #include <ratio>

    int main()
    {
      using r1 = std::ratio<3, 5>;
      using r2 = std::ratio<2, 5>;

      using result = std::ratio_subtract<r1, r2>;

      static_assert(result::num == 1, "result num is 1");
      static_assert(result::den == 5, "result den is 5");
    }

### 出力

## バージョン

### 言語

- C++11

### 処理系

- Clang: 3.0 ✅
- GCC: 4.6.4 ✅
- Visual C++: ??