可以以某种方式省略 `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++,您甚至可以为包装函数指定与原始函数相同的名称。
我已经就 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++,您甚至可以为包装函数指定与原始函数相同的名称。