問題タブ [auto-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++ - Stroustup の本、第 3 版の 368 ページにタイプミスがあると思います。誰か確認していただけますか?
Stroustup の本の 368 ページから抽出されたこのコード スニペットにはタイプミスがあると思います。
すべきではない
なれ
代わりは ?
c++ - auto_ptr へのポインターを vector に格納する
std::vector に auto_ptr(s) へのポインタを格納できますか? 安全ですか?
XML ファイルを読み取り、auto_ptr を使用してそれぞれのオブジェクトを作成するフォルダーを列挙します。XML ファイルの数が事前にわからないので、ベクトルを使用して基本的にそれらへのポインターのリストを保持したいと考えています。
また、ポインターがベクターから削除される (またはベクターが破棄される) と、ポインターはほとんどなくなっていると想定しているため、ポインターを NULL に設定することを心配する必要はありません。
c++ - std::auto_ptr と boost::shared_ptr の意味論的意味
私たちの大規模なプロジェクトでは、次のような多くのクラスがありますtypedef
。
それらの使用は非常に便利です。しかし、auto_ptr
意味的に ref に近く、ref と同じかどうかはPtr
疑問shared_ptr
です。またはauto_ptr
、「所有権の譲渡」セマンティクスがあるため、明示的に使用する必要がありますか?
ありがとう、
c++ - 関数から C++ の値で auto_ptr ペイロードを返す
auto_ptr
C++ 標準は、関数から値によって のペイロードを返すときに、ここでクラッシュしないことを保証しますか?
標準に従ってここで何が起こっているのですか:*foo
コピーされ、次にfoo
破棄され、最後return
に実行されますか? または、ステップの別の順序がありますか?
この例を GCC でテストしましたが、クラッシュはありませんでしたが、別のコンパイラで動作するかどうかはわかりません。
c++ - `auto_ptr`テンプレートクラスに関して、これら2つのソースの間に矛盾はありますか?
このサイトは「所有権、ソース、およびシンク」について述べています:
「をコピーするauto_ptr
と、ソースauto_ptr
からターゲットに所有権が自動的に移りますauto_ptr
。ターゲットauto_ptr
がすでにオブジェクトを所有している場合、そのオブジェクトは最初に解放されます。コピー後、ターゲットのみがauto_ptr
ポインタを所有し、やがてそれを削除します。ソースはnull状態に戻され、所有されているオブジェクトを参照するために使用できなくなります。」
ここで、StroustrupのC++プログラミング言語第3版operator=()
の368ページの第14章のの定義について考えてみましょう。templacte<classX> class auto_ptr
auto_ptr& operator=(auto_ptr& a) throw() { ptr = a.ptr; a.ptr = 0; }
ptr
万が一の場合に備えて、演算子が。でアドレス指定されたオブジェクトを解放しているのがわかりませんptr != 0
。
c++ - auto_ptrへの定数参照を期待する関数にauto_ptrを渡すことの危険性は何ですか?
Nicolai Josuttisは、彼の著書「The C ++ Standard Library-A Tutorial and Reference」の中で、44ページに次の段落を書いています。
auto_ptrsの概念によれば、定数参照を使用して所有権を関数に移すことができます。これは非常に危険です。定数参照としてオブジェクトを渡したときに、オブジェクトが変更されないことを通常は期待しているからです。幸いなことに、auto_ptrsの危険性を低くする設計上の決定が遅れました。いくつかのトリッキーな実装手法では、所有権の譲渡は一定の参照では不可能です。実際、定数auto_ptrの所有権を変更することはできません:…
一定の参照で所有権を変更できない場合、上記の「これは非常に危険です」および「それほど危険ではない」という表現はなぜですか?
c++ - issues on auto_ptr
suppose that,we have following code
i am interested: What's good, what's safe, what's legal, and what's not in this code? as i know about auto_ptr is that,for example following code
This code will print a NULL address for the first auto_ptr object and some non-NULL address for the second, showing that the source object lost the reference during the assignment (=). The raw pointer i in the example should not be deleted, as it will be deleted by the auto_ptr that owns the reference. In fact, new int could be passed directly into x, eliminating the need for i. how can i dtermine which line in my code is safe,which is not?
c++ - ISO C++ は型のない 'auto_ptr' の宣言を禁止します
小さなアプリケーションを作成しようとしていて、auto_ptr を使用してコンパイル時エラーが発生しました。
私は元々、作成したクラスでスマート ポインターを作成するのにうんざりしていましたが、int 型のスマート ポインターを作成しようとすると同じエラーが発生するので、他に間違っていることがあるはずです。私はここで与えられた例に従っていました。.
これに対する答えは、自分を平手打ちする結果になると感じています。
このファイルの最後でスマート ポインターを宣言します。
これが私のクラス、dose_calac.h です。
感謝して受け取った助けや提案。