c++ - shared_ptr 在哪里?

标签 c++ boost c++11 shared-ptr smart-pointers

在试图找到 shared_ptr 的位置几个小时后,我现在非常沮丧。我看到的示例都没有显示包含 shared_ptr 标题的完整代码(和工作)。简单地说std , tr1<memory>一点帮助都没有!我已经下载了 boost ,但仍然没有出现!有人可以告诉我在哪里可以找到它吗?

感谢你让我发泄我的不满!

编辑: 我看到我的标题已更改。对于那个很抱歉。 所以...这也是因为我不清楚 shared_ptr 是否“依赖于 C++ 版本”-->这就是我没有说明我的环境的原因-->因此可能是我很难找到它的原因。

我正在研究 MSVS2008。

编辑 2: 我不知道为什么,但我在到处寻找shared_ptr 时包含了[memory] ​​和[boost/tr1/memory.hpp] 和[boost/tr1/tr1/memory]。当然,我做不到。

感谢所有回复。

最佳答案

您至少可以在三个地方找到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> 中找到.

关于c++ - shared_ptr 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2918202/

相关文章:

c++ - 当更多信息打印到屏幕上时,使 boost::progress_display 工作

c++ boost filtering_streambuf 只读一些数据

c++ - Boost Asio 与一次性对象共享相同的 io_service

c++ - 我可以用静态的、constexpr、类内初始化的数据成员做什么?

c++ - 跟踪自动变量的生命周期?

c++ - 带有文件信息的 CaptureStackBackTrace

c++ - 在本地类中定义 lambda 时,C2326 函数无法访问 'bar'

c++ - 在查找 namespace 名称期间可以考虑哪些其他名称,而不是 namespace 名称?

c++ - 如何根据 C++11 中的特定条件从 vector 中删除元素

c++ - 推力数组的动态内存分配