Giriş
Şu satırı dahil ederiz.
Bölen 1 kabul edilir. Şöyle yaparız.
Şöyle yaparız. 1 / 2 anlamına gelir.
Örnek ver
ratio_divide
Örnek ver
ratio_multiply
Örnek ver
Örnek
Elimizde şöyle bir kod olsun.
Bu sınıfı kendimiz yazsaydık şöyle yapardık.
Şu satırı dahil ederiz.
#include <ratio>
Constructor - BölünenBölen 1 kabul edilir. Şöyle yaparız.
using Zero = ratio<0>;
using One = ratio<1>;
Constructor - Bölen + bölünenŞöyle yaparız. 1 / 2 anlamına gelir.
std::ratio<1, 2> foo;
ratio_greater_equalÖrnek ver
ratio_divide
Örnek ver
ratio_multiply
Örnek ver
Örnek
Elimizde şöyle bir kod olsun.
/* "Strong" speed type, unit is always [m/s]. */
struct Speed {
long double value;
};
/* "Strong" length type, parameterized by a unit as multiples of [m]. */
template <class Period = std::ratio<1>> struct Length {
unsigned long long value;
};
Length yapısını ilklendirmek için elimizde şöyle bir kod olsun.#include <ratio>
auto operator ""_m(unsigned long long n)
{
return Length<>{n};
}
auto operator ""_km(unsigned long long n)
{
return Length<std::kilo>{n};
}
Şöyle yaparız./* We use auto here, because the suffix is so crystal clear: */
const auto lengthInMeter = 23_m;
const auto lengthInKilometer = 23_km;
DiğerBu sınıfı kendimiz yazsaydık şöyle yapardık.
class Fraction {
int numerator{}, denominator{};
public:
Fraction() = default;
Fraction(int n, int d):
numerator(n), denominator(d) {}
~Fraction() = default;
void set_num(int value) { numerator = value; }
void set_den(int value) { denominator = value; }
int get_num() const { return numerator; }
int get_den() const { return denominator; }
...
};
Hiç yorum yok:
Yorum Gönder