1. ホーム
  2. c++

[解決済み] shared_ptrはどこですか?

2022-10-17 10:18:48

質問

shared_ptr がどこにあるかを見つけるのに数時間かかり、今とてもイライラしています。私が見るサンプルのどれも shared_ptr のヘッダーを含む完全なコードを示していません (そして動作しています)。単に std , tr1<memory> は全く役に立ちません! ブーストもダウンロードしたのですが、それでも表示されません。 どなたか、どこにあるか教えていただけませんか?

私の不満を吐き出させてくれてありがとうございます

編集しました。 タイトルが変更になりましたね。それは申し訳ありません。 そう...shared_ptrが"C++バージョン依存であることが明確でなかったことも原因です --> そのため、自分の環境を明記しませんでした --> したがって、私にとって見つけるのが困難であった理由もおそらくそこにあります。

私は MSVS2008 で作業しています。

EDIT 2です。 なぜか、shared_ptrを探しながら、[memory]と[boost/tr1/memory.hpp]と[boost/tr1/tr1/memory]を入れていたのですが、もちろん見つかりませんでした。

たくさんの回答ありがとうございました。

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

少なくとも3つの場所で shared_ptr :

  1. C++ 実装が C++11 をサポートしている場合 (または少なくとも C++11 の shared_ptr ) をサポートしている場合 std::shared_ptr の中で定義されます。 <memory> .

  2. C++ の実装が C++ TR1 ライブラリ拡張をサポートしている場合、以下のようになります。 std::tr1::shared_ptr になる可能性が高いです。 <memory> (Microsoft Visual C++)または <tr1/memory> (g++ の libstdc++) を参照してください。 BoostはTR1実装も提供しているので、それを利用することもできます。

  3. それ以外の場合は、Boostのライブラリを入手し boost::shared_ptr で見つけることができます。 <boost/shared_ptr.hpp> .