Boost.Multiprecion ライブラリの cpp_int バックエンドが 64 ビット アーキテクチャのワード (リム) として 32 ビットの符号なし整数を使用していることに気付きました。64 ビット ワードを使用するための要件は、コンパイラでネイティブの 128 ビット整数を使用できることです (これがヒントになる可能性があります)。何故ですか?
「手がかり」についての詳細。は、 file でネイティブの 128 ビット整数をサポートしていないコンパイラ用limb_type
として定義されています。というタイプもあります。detail::largest_unsigned_type<32>::type
boost/multiprecision/cpp_int/cpp_int_config.hpp
double_limb_type