問題タブ [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++ - GNU/C++ でコンパイルできるのに、VC++2010 RTM でコンパイルできないのはなぜですか?
Eclipse (GNU C++.exe -v gcc version 3.4.5 (mingw-vista special r3)) では、次の 2 つのコンパイル エラーが発生します。
説明 リソース パス 場所 タイプ 初期化引数 1 of
void sink_base(std::auto_ptr<Base>)' from result of
std::auto_ptr<_Tp>::operator std::auto_ptr<_Tp1>() [with _Tp1 = Base, _Tp = Derived]' auto_ptr_ref_research.cpp auto_ptr_ref_research/auto_ptr_ref_research 190 C/C++ 問題説明 リソース パスの場所 タイプ `std::auto_ptr::auto_ptr(std::auto_ptr)' の呼び出しに一致する関数はありません auto_ptr_ref_research.cpp auto_ptr_ref_research/auto_ptr_ref_research 190 C/C++ の問題
しかし、VS2010 RTM では正しいです。
質問:
ISO C++ 標準を表すコンパイラはどれですか?
ケース 4 の内容は、「auto_ptr & auto_ptr_ref を解決したいですか?」という問題です。
c++ - ベクトルのコンパイルの問題>
次のコードを検討してください。
それをコンパイルしようとすると、g++ から次のあいまいなコンパイラ エラーが発生します。
ここで const に何らかの問題があるように思えます。これauto_ptr
は s では使用できないということvector
ですか?
c++ - 通常のポインターと自動ポインター (std::auto_ptr)
コード スニペット (通常のポインター)
コード スニペット (自動ポインター)
ケース 1:
ケース 2:
ケース1でうまくいかなかった理由を誰か教えてください。
c++ - 非オブジェクト型のC++スマートポインタ?
auto_ptr、shared_ptr などのスマート ポインターを使用しようとしています。ただし、この状況での使用方法がわかりません。
よくわかりませんが、ストレージ変数は単に malloc されたメモリであり、C++ クラス オブジェクトではないと思います。ストレージ変数にスマート ポインターを使用する方法はありますか?
ありがとうございました。
c++ - 自動ポインタのコンテナ
自動ポインタのコンテナは使用すべきではなく、問題を引き起こす可能性があることを私は知っています。その実際の理由は何ですか?コンテナで安全に使用できる他の種類の「スマート」ポインタはありますか?
c++ - では、unique_ptrはstlコレクションで安全に使用できますか?
私はunique_ptrと右辺値移動の哲学と混同しています。
2つのコレクションがあるとしましょう。
アルゴリズムが内部で何をしているのか、おそらく内部ピボットコピーなどを作成しているのかわからないため、auto_ptrから所有権を奪うため、次のことが失敗すると予想されます。
私はこれを取得します。そして、コンパイラはこれを正しく禁止します。
しかし、私はこれを行います:
そして、これはコンパイルされます。そして、その理由がわかりません。unique_ptrsをコピーできるとは思いませんでした。これは、ピボット値を取得できないため、並べ替えの効率が低下することを意味しますか?それとも、このピボットは実際には動きであり、実際にはauto_ptrsのコレクションと同じくらい危険であり、コンパイラーによって許可されるべきではありませんか?
重要な情報が不足していると思うので、誰かが私にああを提供してくれるのを心待ちにしています!一瞬。
c++ - Qt と auto_ptr
auto_ptr の概念を発見したばかりで、気に入っています! Qt は QList または QVector<(some QObject または QWidget) *> を必要とすることが多いため、auto_ptr を避けるべき具体的な理由はありますか。私が正しければ、これを置き換えることができます:
はるかに短いものを使用 (つまり、クリーンアップなし)
... Qt は引き続き auto_ptr の共有メモリ マジックを使用できますか? 親子の自動マジック メモリ管理は引き続き透過的に機能しますか? ありがとう
c++ - 問題なくauto_ptrから継承することはできません
私がしたいのはこれです:
(実際には、配列も処理するauto_ptrクラスのコピーがありますが、同じエラーがstlクラスにも当てはまります)
GCC4.3.0を使用したコンパイルエラーは次のとおりです。
autostr(autostr&)の有効なパラメーターとしてautostr引数が一致しない理由がわかりません。
c++ - 動的に割り当てられた配列でauto_ptrを使用する正しい方法は何ですか?
auto_ptrを使用して動的に割り当てられた配列へのポインターを保持する場合、auto_ptrが強制終了されると、 delete []ではなく単純な削除操作が使用されるため、割り当てられた配列は削除されません。
動的に割り当てられたアレイでauto_ptrを(適切に)使用するにはどうすればよいですか?
これが不可能な場合、動的に割り当てられた配列に代わる別のスマートポインターはありますか?
前もって感謝します。
c++ - auto_ptrがコンテナを「シール」できる理由
ウィキペディアのauto_ptrは、「STLコンテナーを含むauto_ptrを使用して、コンテナーがさらに変更されるのを防ぐことができる」と述べています。次の例を使用しました。
最後の行のコメントを外すと、g++は次のようにエラーを報告します
このベクターの所有権を譲渡した後、変更できなくなったのはなぜですか?
どうもありがとう!