C++ 是否可以将Boost uint128\t数据类型存储到基元int中?
我正在试验Boost库,并希望将Boost 1.59.0中定义的uint128_t数据类型中的值存储到原始int类型中。uint128_t有一个值,比如0xaf,可以放入一个int。基本上我想做的是:C++ 是否可以将Boost uint128\t数据类型存储到基元int中?,c++,boost,C++,Boost,我正在试验Boost库,并希望将Boost 1.59.0中定义的uint128_t数据类型中的值存储到原始int类型中。uint128_t有一个值,比如0xaf,可以放入一个int。基本上我想做的是: uint128_t var = 0xaf; int new_var = var; 我不能直接这样做。有没有办法做到这一点?我需要将其向下转换为一个基元类型,以便将其用作数组的索引。我试图浏览Boost文档,但有点困惑。提前谢谢 Boost的number类有一个用于转换的成员函数模板: templ
uint128_t var = 0xaf;
int new_var = var;
我不能直接这样做。有没有办法做到这一点?我需要将其向下转换为一个基元类型,以便将其用作数组的索引。我试图浏览Boost文档,但有点困惑。提前谢谢 Boost的
number
类有一个用于转换的成员函数模板:
template <class T>
T convert_to()const;
模板
T将_转换为()常量;
以及一个显式转换运算符模板,因此
静态\u cast(number)
可能会工作,尽管这可能特定于所使用的后端存储类型。您希望如何在32位中存储128位数据?Magic?@SLaks问题是,该值在int
的范围内,因此这不应该是问题。通常,“如何使用此库”的答案是检查文档。顺便说一句,这个问题比您之前提出的问题有很大改进,继续。显式转换运算符模板对我不起作用。但是成员函数模板起作用了!