Skip to content

Latest commit

 

History

History
58 lines (43 loc) · 1.53 KB

ratio_less.md

File metadata and controls

58 lines (43 loc) · 1.53 KB

ratio_less

  • ratio[meta header]
  • std[meta namespace]
  • class template[meta id-type]
  • cpp11[meta cpp]
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");
}
  • std::ratio_less[color ff0000]
  • std::ratio[link ratio.md]

出力

バージョン

言語

  • C++11

処理系

参照