[解決済み] なぜauto_ptrは非推奨なのですか?
2023-01-19 06:51:55
質問
聞いた話
auto_ptr
は C++11 で非推奨になると聞きました。 その理由は何ですか?
また、私は
auto_ptr
と
shared_ptr
.
どのように解決するのですか?
の直接の置き換えは
auto_ptr
を直接的に置き換えるもの(あるいはそれに最も近いもの)は
unique_ptr
. "問題"に関しては、非常にシンプルです。
auto_ptr
は、割り当てられたときに所有権を移します。
unique_ptr
も所有権を移しますが、移動セマンティクスのコード化とrvalue参照のマジックのおかげで、かなり自然にそうすることができます。また、標準ライブラリの残りの部分との相性もかなり良くなっています(ただし、公平を期して、残りのライブラリが常にコピーを必要とするのではなく、移動のセマンティクスに対応するように変化したおかげであるとも言えます)。
名前の変更も (IMO) 歓迎すべきものです。
auto_ptr
は何を自動化しようとしているのかをあまり教えてくれませんが、一方
unique_ptr
は提供されるもののかなり妥当な (簡潔な) 記述です。
関連
-
[解決済み] [Solved] Error C1083: Cannot open include file: 'stdafx.h'
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] push_back vs emplace_back
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み】リンカーエラーです。"リンカ入力ファイルはリンクが行われていないため未使用"、そのファイル内の関数への未定義参照
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?