2

私の読書std::unique_ptrは、それが(他のスマートポインターとともに)プロジェクト内のポインターにとって間違いなく最良の選択であることを私に確信させました(特に、最適化コンパイラーが std::unique_ptr からすべてのランタイムコストを削除した後)、しかし私はインターフェイスで何をするかについてはまだわかりません。私はさまざまな C++ ABI がどのように機能するかを完全には理解していないので、これがばかげた質問である場合はご容赦ください。ただし、ポインターを取得または返す関数、ポインター メンバーを持つクラス/構造体などは、unique_ptr(たぶんunique_ptrrefsを使用していますか?)再コンパイルを必要とせずに?C コードは、簡単に使用して C++ インターフェイスと対話できますunique_ptrか?

4

1 に答える 1

5

私の知る限り、その保証はないsizeof(unique_ptr<T>) == sizeof(T*)ので、いいえ。

しかし、同じサイズだったとしても、任意の ABI が「値」引数と同じメカニズムでポインター引数を渡すという保証もありません。

于 2013-07-22T00:20:59.037 に答える