shared_ptr在哪里?
几个小时后,我非常沮丧,试图findshared_ptr所在的位置。 我看到的例子都没有显示完整的代码来包含shared_ptr
(和working)的头文件。 简单地说std
, tr1
和<memory>
完全没有帮助! 我已经下载提升和所有,但仍然不显示! 有人可以帮助我确切地知道在哪里find它吗?
感谢让我发泄我的挫折!
编辑:我看到我的标题已经改变。 对于那个很抱歉。 所以…这也是因为我不清楚shared_ptr是“C ++版本依赖” – >这就是为什么我没有说明我的环境 – >因此,可能为什么我很难find它。
我正在MSVS2008上工作。
编辑2:我不知道为什么,但我包括[内存]和[boost / tr1 / memory.hpp]和[boost / tr1 / tr1 /内存],而无处不在寻找shared_ptr ..当然,我couldn “T。
感谢所有的答复。
至less有三个地方可以findshared_ptr
:
-
如果你的C ++实现支持C ++ 11(或者至lessC ++ 11
shared_ptr
),那么std::shared_ptr
将在<memory>
定义。 -
如果您的C ++实现支持C ++ TR1库扩展,则
std::tr1::shared_ptr
可能位于<memory>
(Microsoft Visual C ++)或<tr1/memory>
(g ++的libstdc ++)中。 Boost还提供了一个可以使用的TR1实现。 -
否则,您可以获得Boost库并使用
boost::shared_ptr
,它可以在<boost/shared_ptr.hpp>
。
加速入门
如果你想用Boost TR1来代替它
shared_ptr示例
对于带有function包更新的VS2008,可以在命名空间std :: tr1下findshared_ptr。
std::tr1::shared_ptr<int> MyIntSmartPtr = new int;
的
如果您已将提升安装path(例如@ C:\Program Files\Boost\boost_1_40_0
)添加到您的IDE设置:
#include <boost/shared_ptr.hpp>
如果你的浏览器是shared_ptr ,你可以通过googlesearchshared_ptr ,跟随文档的链接,find答案,然后打开一个完整的例子。
无论如何,下面是我刚刚破解的一个简单的完整工作示例:
#include <boost/shared_ptr.hpp> struct MyGizmo { int n_; }; int main() { boost::shared_ptr<MyGizmo> p(new MyGizmo); return 0; }
为了使#include
find头文件,库显然需要在searchpath中。 在MSVC中,您可以在“项目设置”>“configuration属性”>“C / C ++”“其他包含目录”中进行设置。 在我的情况下,这是设置为C:\Program Files (x86)\boost\boost_1_42