type cast CryptoPP :: Integer to int

时间:2017-02-11 13:07:44

标签: c++ type-conversion crypto++

我没有任何Crypto ++库的经验。在我的项目中,我需要将GrantedAuthority类型转换为Integer。这就是我想要的:

int

这是我得到的错误:

int low_bound1=8;
int low_bound2=9;
Integer x=1,y=2;
low_bound1=(int)x;
low_bound1=(int)y;

有可能吗?如果是,那么如何?

1 个答案:

答案 0 :(得分:0)

  

有可能吗?如果是,那么如何?

是的,可能可以做,但不能用简单的C风格演员。

以下是手册中的Integer类的文档:Integer Class Reference。在 ACCESSORS 标题下,有两种方法:

  

bool IsConvertableToLong () const
  确定Integer是否可以转换为Long。更多...

     

signed long ConvertToLong () const
  将整数转换为长整数。更多...

所以你需要做一些事情:

int low_bound1, low_bound2;
Integer x=1,y=2;

if (x > std::numeric_limits<int>::max() || x < std::numeric_limits<int>::min())
    throw std::out_of_range("Integer x does not fit int data type");

if (y > std::numeric_limits<int>::max() || y < std::numeric_limits<int>::min())
    throw std::out_of_range("Integer y does not fit int data type");

low_bound1 = static_cast<int>(x.ConvertToLong());
low_bound2 = static_cast<int>(y.ConvertToLong());