演算子の多重定義こわい

パスタコードとか無秩序とかが好きなので、
構造化とかオブジェクトとか言われると、何それ美味しいの? だ。

#include <iostream>
#include <iomanip>
#include <gmpxx.h>

int main()
{
    mpf_t f;
    mpf_init2(f, 200);
    mpf_set_ui(f, 29);

    mpf_class x = 29, y(29, 200), z(1 / y), w(f);
    x = 1 / x;
    y = 1 / y;
    w = 1 / w;
    std::cout << std::setprecision(59);
    std::cout << x << std::endl << y << std::endl << z << std::endl << w << std::endl;

    mpf_clear(f);
}

C++だとmpf_tを直接扱う機会はあまりなさそう。
それにしても演算子のオーバーロードは混沌の源とつくづく思う。
実行すると、

0.0344827586206896551724
0.034482758620689655172413793103448275862068965517241379310345
0.034482758620689655172413793103448275862068965517241379310345
0.034482758620689655172413793103448275862068965517241379310345