基本的な数学では、(128/8 = 16)異なっ話します。私はちょっとがっかりしているといくつかの回答をしたい - 私はその表記(type_num_of_bytes_t)に使用されてきたものがちょうどあなたが変数に入れることができるデータの量が、また、クロスプラットフォームは、固定可変サイズではない記述からので、であり、後者はさらに重要です。私は間違って何をしていますか?ブースト::多倍精度:: uint128_tのsizeofは24
#include "boost/multiprecision/cpp_int.hpp"
using boost::multiprecision::uint128_t;
...
qDebug() << sizeof(uint128_t);
出力:24
私はWindows上でvs2013でコンパイルし、標準のx86/64アーキテクチャのCPUを使用しています。
UPDATE:ブーストバージョン1.61です。
へぇのサイズ24になり、編集のためのおかげで、[ことはできません、私はあまりにも感情的な書き込みを行ってきたように、これはD –
を=思えます(http://melpon.org/wandbox/permlink/oSB8GpK75qUDH6D6)、[ABIは](https://software.intel.com/sites/default/files/article/402129/mpx-linux64-abi)を参照してください。 pdf)それは16でなければなりません。私の64ビットLinuxでも試しましたが、まだ16になっています。あなたのプラットフォームに関する十分な情報を追加して、問題を再現可能にしてください。 –
vs2013のコンパイラを使って実行したときとまったく同じ正確なコードが表示されます。 –