Можно ли как-нибудь опустить `get_mpz_t ()`? - PullRequest
0 голосов
/ 17 июня 2019

Я много звонил get_mpz_t() по mpz_class типам.Я не понимаю, в чем суть.У меня есть красный * документация , и, насколько я могу судить, он нужен только потому, что для некоторых функций требуется 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 Ответ

2 голосов
/ 17 июня 2019

Почему бы не написать свою собственную функцию-обертку?

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 ++, вы даже можете присвоить функции-оболочке то же имя, что и у оригинала.

...