[解決済み】std::auto_ptrからstd::unique_ptrへ
2022-04-12 06:45:43
質問
新しい規格の登場により(一部のコンパイラでは既に利用可能な部分もあります)、新しい型である
std::unique_ptr
に代わるものとして想定されているのが
std::auto_ptr
.
その使い方はぴったり重なるのか(自分のコードでグローバル検索・置換ができるようになるのか(するわけではありませんが、するとしたら))、ドキュメントを読んでもわからないような違いがあるので注意したほうがいいのでしょうか。
また、直接的に置き換えるのであれば、なぜ単に
std::auto_ptr
?
解決方法は?
グローバル検索/置換はできません。
auto_ptr
(結果は分かっていますが)しかし
unique_ptr
は移動のみ可能です。のように見えるものは
std::auto_ptr<int> p(new int);
std::auto_ptr<int> p2 = p;
は、少なくとも次のようになる必要があります。
std::unique_ptr<int> p(new int);
std::unique_ptr<int> p2 = std::move(p);
その他の違いについては
unique_ptr
は配列を正しく処理することができます(これは
delete[]
一方
auto_ptr
を呼び出そうとします。
delete
.
関連
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] std::move()とは何ですか?また、どのような場合に使用するのですか?
-
[解決済み] const std::string & をパラメータとして渡す時代は終わったのでしょうか?
-
[解決済み] コンストラクタや関数に unique_ptr 引数を渡すにはどうしたらいいですか?
-
[解決済み] 関数からunique_ptrを返す
-
[解決済み】std::unique_ptr<T>はTの完全な定義を知るために必要なのでしょうか?
-
[解決済み】vectorにunique_ptrをpush_backできないのはなぜですか?
-
[解決済み】配列でunique_ptrを使用することはありますか?
-
[解決済み] std::make_unique と std::unique_ptr の new による違い
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】識別子 "string "は未定義?
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み] 非静的データメンバの無効な使用
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】浮動小数点数の乱数生成
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み】どのような時にどのようなポインタを使えばいいのでしょうか?