可以以某种方式省略`get_mpz_t()`吗?

时间:2019-06-17 08:34:01

标签: c++ gmp

我在get_mpz_t()类型上经常打电话给mpz_class。我不是很明白这一点。我已经将documentation涂成红色,并且据我所知,仅因为某些功能需要mpz_t而不是mpz_class才需要?

要复制文档中给出的示例,我发现我经常在这种情况下调用它,但具有各种功能:

mpz_class a, b, c;
...
mpz_gcd (a.get_mpz_t(), b.get_mpz_t(), c.get_mpz_t());

如果唯一的区别是语法,可以省略还是自动将其省略,因此我不必键入太多?我比C更熟悉C ++。

1 个答案:

答案 0 :(得分:2)

为什么不编写自己的包装函数?

inline void mpz_gcd(mpz_class& a, const mpz_class& b, const mpz_class& c)
{
    mpz_gcd(a.get_mpz_t(), b.get_mpz_t(), c.get_mpz_t());
}

鉴于这是C ++,您甚至可以给包装函数起相同的名称。