I am so frustrated right now after several hours trying to find where shared_ptr is located. None of the examples I see show complete code to include the headers for shared_ptr (and working). Simply stating std, tr1 and <memory> is not helping at all! I have downloaded boosts and all but still it doesn’t show up! Can someone help me by telling exactly where to find it?
Thanks for letting me vent my frustrations!
EDIT:
I see my title has been changed. Sorry about that.
So… it was also because it was not clear to me that shared_ptr is “C++ version dependant” –> that’s why I did not state my environment –> therefore probably why it was so difficult for me to find it.
I am working on MSVS2008.
EDIT 2:
I don’t know why, but I was including [memory] and [boost/tr1/memory.hpp] and [boost/tr1/tr1/memory] while looking everywhere for the shared_ptr.. of course, i couldn’t.
Thanks for all the responses.
There are at least three places where you may find
shared_ptr:If your C++ implementation supports C++11 (or at least the C++11
shared_ptr), thenstd::shared_ptrwill be defined in<memory>.If your C++ implementation supports the C++ TR1 library extensions, then
std::tr1::shared_ptrwill likely be in<memory>(Microsoft Visual C++) or<tr1/memory>(g++’s libstdc++). Boost also provides a TR1 implementation that you can use.Otherwise, you can obtain the Boost libraries and use
boost::shared_ptr, which can be found in<boost/shared_ptr.hpp>.