• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

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

    履歴 編集

    class template
    <ratio>

    std::ratio

    namespace std {
      template <intmax_t N, intmax_t D = 1>
      class ratio {
      public:
        using type = ratio<num, den>;
        static constexpr intmax_t num;
        static constexpr intmax_t den;
      };
    }
    

    概要

    ratioは、コンパイル時に有理数を表現するためのクラスである。メンバ定数として、num(分子:numerator)とden(分母:denominator)を持つ。

    numdenの値は、gcd(最大公約数:the greatest common divisor)を使用して、以下のようにNDを約分して割り当てる:

    要件

    denの値が0でもなく、intmax_tの最小値でもないこと。

    #include <ratio>
    
    int main()
    {
      using r = std::ratio<3, 12>;
    
      static_assert(r::num == 1, "num is 1");
      static_assert(r::den == 4, "den is 4");
    }
    

    出力

    バージョン

    言語

    • C++11

    処理系