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

Can `get_mpz_t()` be omitted somehow?

我已经就 mpz_class 类型给 get_mpz_t() 打了很多电话。我真的不明白这是什么意思。我已将 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更熟悉。

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

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++,您甚至可以为包装函数指定与原始函数相同的名称。