在试图找到shared_ptr的位置几个小时后,我现在非常沮丧。我看到的示例中没有一个完整的代码包含shared_ptr
(和工作)的头文件。简单地说std
、tr1
和<memory>
是没有任何帮助的!我已经下载了boosts,但它仍然没有显示出来!有没有人可以帮助我,告诉我在哪里可以找到它?
谢谢你让我发泄我的沮丧!
编辑:我看到我的标题被更改了。真对不起。所以..。这也是因为我不清楚shared_ptr是不是“依赖于C++版本”-->这就是为什么我没有说明我的环境-->因此可能是为什么我很难找到它。
我正在研究MSVS2008。
编辑2:我不知道为什么,但我在到处寻找shared_ptr时,包括了memory和boost/tr1/memory y.hpp和boost/tr1/tr1/memory。当然,我不能。
感谢所有的回复。
发布于 2010-05-27 11:02:33
发布于 2010-05-27 11:06:46
对于具有功能包更新的VS2008,可以在名称空间std::tr1下找到shared_ptr。
std::tr1::shared_ptr<int> MyIntSmartPtr = new int;
的
如果已将boost安装路径(例如@ C:\Program Files\Boost\boost_1_40_0
)添加到您的集成开发环境设置中:
#include <boost/shared_ptr.hpp>
发布于 2010-05-27 22:13:10
如果你正在寻找boost的shared_ptr,你可以很容易地通过googling shared_ptr找到答案,沿着文档的链接,并拉出一个完整的工作示例,如this。
无论如何,这里有一个我刚刚修改过的简约的完整的工作示例:
#include <boost/shared_ptr.hpp>
struct MyGizmo
{
int n_;
};
int main()
{
boost::shared_ptr<MyGizmo> p(new MyGizmo);
return 0;
}
为了让#include
找到头文件,库显然需要在搜索路径中。在MSVC中,您可以在项目Settings>Configuration属性>C/C++>Additional Include Directories中进行设置。在我的例子中,它被设置为C:\Program Files (x86)\boost\boost_1_42
https://stackoverflow.com/questions/2918202
复制相似问题