boost :: multiprecision :: export_bits抛出负的cpp_int数

时间:2016-04-27 13:14:53

标签: c++ boost boost-multiprecision

在基于cpp_int的负boost :: multiprecision数字上调用export_bits时,会从内部方法msb抛出异常(“不支持测试负值中的各个位”)。 (提升1.60)

boost::multiprecision::checked_int128_t i (-1); // use negative number
std::vector<unsigned char> v;
export_bits(i, std::back_inserter(v), 8);  // throws

如何提取boost :: multiprecision数字的内容? Boost documentation说,export_bits旨在用于数据交换,因此根据我的理解,如果它无法导出支持的值,那将是一个重大缺陷。

learnt解决方法可能是直接访问后端的肢体,但它正在访问可能会发生变化的内部。

更新:我在boost邮件列表上发布了这个问题,为此https://svn.boost.org/trac/boost/ticket/12170打开了一张票,它将在即将发布的版本中修复。

http://www.boost.org/doc/libs/master/libs/multiprecision/doc/html/boost_multiprecision/tut/import_export.html

0 个答案:

没有答案
相关问题