Simple program failed to compile with VS2019 (It should be the same with the other compilers).
void foo(mpreal &&);
mpreal a,b;
foo(a+b); // a+b has a type of const mpreal
Note the signature of operator+: inline const mpreal operator+(const mpreal& a, const mpreal& b). It seems quite unnormal that returning value with a const qualifier. I don't know if there is any benefit by return value with const qualifier. However, there is clearly a drawback.