1

この質問がSOに適しているかどうかはわかりませんでしたが、次のようになります。

shared_from_thisを有効にすると、実行可能ファイルのサイズが大きくなりすぎませんか?また、shared_from_this()呼び出しを解決するのに時間がかかりすぎませんか?

ドキュメントを見てみると、enable_shared_from_thisは2つの関数を追加するだけのヘルパーなので、あまり余分なサイズをとるべきではないと思います。

編集この質問に適したタイトルは、どのくらいのサイズを追加するかです。サイズが大きすぎるかどうかを尋ねる代わりに。

4

2 に答える 2

4

shared_from_thisを有効にすると、実行可能ファイルのサイズが大きくなりすぎませんか?

実行時に、インスタンス化された各オブジェクトにaのサイズを追加しweak_ptrます。これは、現在のバージョンのBoostでは2ポインターのサイズです。

実行可能バイナリ自体に関しては、ソースコードの変更がそのファイルのサイズにどのように影響するかを予測するのは非常に困難です。

また、shared_from_this()呼び出しを解決するのに時間がかかりすぎませんか?

shared_ptrからを構築するのにかかる時間を予想する必要がありweak_ptrます。

于 2013-03-06T13:21:24.070 に答える
2

ブーストソースファイルを見ることができます。これはクラスにのみ追加さmutable weak_ptr<T> weak_this_;れ、クラス自体にはインスタンスへのポインターとrefcounterへのポインターのみが含まれます。

于 2013-03-06T13:21:16.297 に答える