• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    class template
    <ratio>

    std::ratio_less

    namespace std {
      template <class R1, class R2>
      struct ratio_less;
    
      template <class R1, class R2>
      inline constexpr bool ratio_less_v
        = ratio_less<R1, R2>::value;     // C++17
    }
    

    概要

    ratio_lessは、2つのratioにおいて、左辺が右辺より小さいかを判定するクラステンプレートである。

    効果

    ratio_lessは、R1::num * R2::den < R2::num * R1::denであればtrue_typeから派生し、そうでなければfalse_typeから派生する。

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

    #include <ratio>
    
    int main()
    {
      using r1 = std::ratio<2, 5>;
      using r2 = std::ratio<3, 5>;
    
      static_assert(std::ratio_less<r1, r2>::value == true, "r1 < r2");
    }
    

    出力

    バージョン

    言語

    • C++11

    処理系

    参照