3

多倍精度複素数ライブラリ( zkcm ) を使用しており、 を使用していくつかの結果を比較したいと考えていcomplex<double>ます。

ある時点で、を使用して変数のメモリを再確認しようとしましたが、変数sizeof()を割り当てるメモリの大きさに関係なく、同じ答え (32) が得られました。つまり、次のスニペットは、内部で何を使用しても 32 を出力しますzkcm_set_default_prec()

zkcm_set_default_prec(128);
zkcm_class z;
cout << sizeof(z) << endl;

sizeof()変数のメモリサイズを取得する以外の方法はありますか?

4

2 に答える 2

1

私はそれをテストすることはできず、ドキュメントは少しあいまいですが、このシグネチャを持つメソッドがあります:

int zkcm class::get_prec ( void ) const;

次のように説明されています。

オブジェクトの内部精度、つまり「この」複素数の各部分に使用される精度を取得します

これにより、桁数が返される場合があります。これは、使用されているメモリの量に比例する必要があります。もちろん、正確な関係は実装の詳細です。クラス自体はおそらく、数字が存在するヒープ割り当てバッファーへのポインターと、いくつかの簿記情報を保持しているだけです。演算子 (C++) は完全に静的です。sizeofつまり、コンパイル時に評価されます。

于 2016-01-14T14:07:23.597 に答える