3

当基于 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 文档说,export_bits 旨在用于数据交换,因此在我看来,如果它不能导出支持的值,这将是一个重大缺陷。

了解到一种解决方法可能是直接访问后端的肢体,但它访问的内部结构可能会发生变化。

更新:我在 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

4

0 回答 0