問題タブ [scoped-ptr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 指すオブジェクトのサイズとは異なるサイズのメモリ ブロックを保持する scoped_ptr/shared_ptr をブーストします。
実際、この質問を書いているときに、別の短い質問が頭に浮かんだので、最初に質問します。
第 1 の質問 (短い):
この方法で定義された構造体を持つヘッダーがあります。
この構文の意味は何ですか? (構造体名と右中括弧の後の名前の違いに注意してください)
2 番目の質問 (長い):
私が使用しているハードウェアを適切に初期化する方法を示すハードウェア製造元からのコード例があります。コード メーカーは生のポインターを使用しており、私のアプリケーションでは、boost scoped_ptr または shared_ptr を使用したいと考えています。問題は、割り当てたいメモリ ブロックが通常の新しい ObjectType によって割り当てられるサイズと異なることです。
メーカーのサイトから入手したものの短いバージョンは次のとおりです。
そして、ここに私が取得したいものがあります:
構造体が正確にどのように見えるかを次に示します。
問題は、この機能を scoped_ptr/shared_ptr で動作させるにはどうすればよいかということです。また、コード スニペットでは、メモリ ブロックの削除が delete[] ではなく delete によって行われていることに注意してください。scoped_array を使用する必要がありますか? もしそうなら、どのように構造体フィールドにアクセスしますか?
誰かが役に立つと思う場合に備えて、メーカーのサイトからの完全な例があります。
c++ - メンバー関数を呼び出すための scoped_ptr がエラーをスローする
私は現在 Accelerated C++ ch13 を読んでおり、boost scoped_ptr を介して書籍に記載されているサンプル プログラムを実行することを考えていましたが、エラーが発生しました。
私を救ってください。
**
**
元のサンプルコードは以下に示すもので、これは問題なく動作します
scoped_ptr MY VERSION を使用するようになりました
c++ - ディープ コピー機能が組み込まれたスコープ付き ptr はありますか?
私が理解しているように、boost::scoped_ptr メンバー変数を持つクラスがあり、そのクラスのインスタンスをコピーし、新しいインスタンスにその scoped_ptr メンバーが最初のもののコピーを指すようにしたい場合インスタンスが指している場合、カスタム コピー コンストラクター (および代入演算子) を実装し、scoped_ptr が指すものすべてを明示的にディープ コピーする必要があります。スマート ポインター型に、これ自体を行うコピー コンストラクターがあれば、すばらしいことです。
スマート ポインターがコピーされると、それが指すオブジェクトもコピーされるように、ディープ コピー機能が既に組み込まれている C++ ブースト/stl ライブラリに同様のスマート ポインターはありませんか? 少なくともオプションとして?
(そのようなポインターがあった場合、私の場合、指しているオブジェクトは仮想 Clone() 関数を使用してポリモーフィック クラスであるため、ポインターは新しいオブジェクトを作成する方法についてもう少し知る必要があります。スマート ポインターができた場合ディープ コピーの方法を暗示的に理解するのではなく、クライアント コードが関数ポインタまたは Clone 関数を指す何かを提供している可能性があります。または、ファクトリ作成関数を使用する必要があります。結局、ポインターにディープコピー機能がない理由..?)