1. ホーム
  2. c++

[解決済み] なぜauto_ptrは非推奨なのですか?

2023-01-19 06:51:55

質問

聞いた話 auto_ptr は C++11 で非推奨になると聞きました。 その理由は何ですか?

また、私は auto_ptrshared_ptr .

どのように解決するのですか?

の直接の置き換えは auto_ptr を直接的に置き換えるもの(あるいはそれに最も近いもの)は unique_ptr . "問題"に関しては、非常にシンプルです。 auto_ptr は、割り当てられたときに所有権を移します。 unique_ptr も所有権を移しますが、移動セマンティクスのコード化とrvalue参照のマジックのおかげで、かなり自然にそうすることができます。また、標準ライブラリの残りの部分との相性もかなり良くなっています(ただし、公平を期して、残りのライブラリが常にコピーを必要とするのではなく、移動のセマンティクスに対応するように変化したおかげであるとも言えます)。

名前の変更も (IMO) 歓迎すべきものです。 auto_ptr は何を自動化しようとしているのかをあまり教えてくれませんが、一方 unique_ptr は提供されるもののかなり妥当な (簡潔な) 記述です。