I have an existing variable, e.g.
int a = 3;
How can I now create a boost::shared_ptr to a? For example:
boost::shared_ptr< int > a_ptr = &a; // this doesn't work
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
although you should put the variable into a managed pointer on it’s creation to do it from an existing pointer.
That said you most definitely do not want to be putting stack variables into shared_ptr BAD THINGS WILL HAPPEN
If for some reason a function takes shared_ptr and you only have a stack varaible you are better off doing this:
See here:
http://www.boost.org/doc/libs/1_43_0/libs/smart_ptr/make_shared.html
also it is worth noting that shared_ptr is in the c++11 standard if you are able using that. You can use auto in combination with make_shared like Herb Sutter notes in the build talk.