C++ GNU GMP中mpz_类的sizeinbase

C++ GNU GMP中mpz_类的sizeinbase,c++,gmp,C++,Gmp,在C中,我们有mpz\t,我们可以通过 size_t mpz_sizeinbase (const mpz_t op, int base) 在mpz_课上,我试过 counter.sizeinbase(2); 那没用 error: ‘mpz_class {aka class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>}’ has no member named ‘sizeinbase’ size_t size = (co

在C中,我们有
mpz\t
,我们可以通过

size_t mpz_sizeinbase (const mpz_t op, int base)
在mpz_课上,我试过

counter.sizeinbase(2);
那没用

error: ‘mpz_class {aka class __gmp_expr<__mpz_struct [1], __mpz_struct [1]>}’ has no member named ‘sizeinbase’
      size_t size = (counter.sizeinbase(2) + CHAR_BIT-1) / CHAR_BIT;
错误:“mpz_类{aka类{uuu gmp_expr}”没有名为“sizeinbase”的成员
size\u t size=(counter.sizeinbase(2)+CHAR\u BIT-1)/CHAR\u BIT;
我需要使用mpz_类来简化无序_映射的代码


mpz_类是否有类似的函数或解决方法?

使用
get_mpz_t
方法访问包装的
mpz_t

mpz_class x = ...;
size_t xbits = mpz_sizeinbase(x.get_mpz_t(), 2);

至少这在MPIR中有效,我假设它在GMP中也有效。

使用
get\u mpz\u t
方法访问包装的
mpz\u t

mpz_class x = ...;
size_t xbits = mpz_sizeinbase(x.get_mpz_t(), 2);
至少这在MPIR中有效,我假设它在GMP中也有效