Boost logo

Boost Users :

Subject: Re: [Boost-users] How to cast a boost::shared_ptr to void*
From: Robert Jones (robertgbjones_at_[hidden])
Date: 2011-05-10 05:17:30


On Tue, May 10, 2011 at 9:54 AM, Mupparthy Ravindranath
<rv_nath_at_[hidden]>wrote:

> Sorry for the spam. I got the answer, how to do it. Ignore my previous
> mail.
>
> [quote]
> #include <boost/shared_ptr.hpp>
> #include <iostream>
> using namespace std;
>
> class A {
> public:
> void hello () { cout << "Hello, friends...!" << endl; }
> };
>
> typedef boost::shared_ptr<A> APtr;
>
> void* callbk (void* o) {
> APtr a = *static_cast<APtr*>(o);
> a->hello();
> }
>
> int main() {
> A* rawPtr = new A;
> boost::shared_ptr<A>sPtr(rawPtr);
> callbk((void*)&sPtr);
> return 0;
> }
> [/quote]
>
>
Not like that! That passes the address of the shared pointer, not the
address of your
new'd object. If it works it's by luck!

- R.



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net