問題タブ [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.

0 投票する
2 に答える
116 参照

c++ - Stroustup の本、第 3 版の 368 ページにタイプミスがあると思います。誰か確認していただけますか?

Stroustup の本の 368 ページから抽出されたこのコード スニペットにはタイプミスがあると思います。

すべきではない

なれ

代わりは ?

0 投票する
2 に答える
1043 参照

c++ - auto_ptr へのポインターを vector に格納する

std::vector に auto_ptr(s) へのポインタを格納できますか? 安全ですか?

XML ファイルを読み取り、auto_ptr を使用してそれぞれのオブジェクトを作成するフォルダーを列挙します。XML ファイルの数が事前にわからないので、ベクトルを使用して基本的にそれらへのポインターのリストを保持したいと考えています。

また、ポインターがベクターから削除される (またはベクターが破棄される) と、ポインターはほとんどなくなっていると想定しているため、ポインターを NULL に設定することを心配する必要はありません。

0 投票する
5 に答える
271 参照

c++ - std::auto_ptr と boost::shared_ptr の意味論的意味

私たちの大規模なプロジェクトでは、次のような多くのクラスがありますtypedef

それらの使用は非常に便利です。しかし、auto_ptr意味的に ref に近く、ref と同じかどうかはPtr疑問shared_ptrです。またはauto_ptr、「所有権の譲渡」セマンティクスがあるため、明示的に使用する必要がありますか?

ありがとう、

0 投票する
2 に答える
265 参照

c++ - 関数から C++ の値で auto_ptr ペイロードを返す

auto_ptrC++ 標準は、関数から値によって のペイロードを返すときに、ここでクラッシュしないことを保証しますか?

標準に従ってここで何が起こっているのですか:*fooコピーされ、次にfoo破棄され、最後returnに実行されますか? または、ステップの別の順序がありますか?

この例を GCC でテストしましたが、クラッシュはありませんでしたが、別のコンパイラで動作するかどうかはわかりません。

0 投票する
1 に答える
105 参照

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

0 投票する
1 に答える
1586 参照

c++ - auto_ptrへの定数参照を期待する関数にauto_ptrを渡すことの危険性は何ですか?

Nicolai Josuttisは、彼の著書「The C ++ Standard Library-A Tutorial and Reference」の中で、44ページに次の段落を書いています。

auto_ptrsの概念によれば、定数参照を使用して所有権を関数に移すことができます。これは非常に危険です。定数参照としてオブジェクトを渡したときに、オブジェクトが変更されないことを通常は期待しているからです。幸いなことに、auto_ptrsの危険性を低くする設計上の決定が遅れました。いくつかのトリッキーな実装手法では、所有権の譲渡は一定の参照では不可能です。実際、定数auto_ptrの所有権を変更することはできません:…

一定の参照で所有権を変更できない場合、上記の「これは非常に危険です」および「それほど危険ではない」という表現はなぜですか?

0 投票する
1 に答える
375 参照

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?

0 投票する
3 に答える
5831 参照

c++ - ISO C++ は型のない 'auto_ptr' の宣言を禁止します

小さなアプリケーションを作成しようとしていて、auto_ptr を使用してコンパイル時エラーが発生しました。

私は元々、作成したクラスでスマート ポインターを作成するのにうんざりしていましたが、int 型のスマート ポインターを作成しようとすると同じエラーが発生するので、他に間違っていることがあるはずです。私はここで与えられた例に従っていました。.

これに対する答えは、自分を平手打ちする結果になると感じています。

このファイルの最後でスマート ポインターを宣言します。

これが私のクラス、dose_calac.h です。

感謝して受け取った助けや提案。

0 投票する
4 に答える
1569 参照

c++ - std :: auto_ptrを初期化しています: "エラー:'(std :: auto_ptr)(int *)'"