|
Boost : |
From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-08-25 07:12:19
If I have boost::shared_ptr<some_class>, it's possible to cast it to
shared_ptr<void>. But it does not appear to be any way to convert pointer to
function to pointer to void -- just because there's no implicit conversion
from function pointer to void*.
So, when I compile the attached program with g++, I get:
sp.cpp:22: instantiated from here
/home/ghost/Work/boost/boost/shared_ptr.hpp:163: error: invalid conversion
from
`void (* const)()' to `void*'
Is there any way to make it work? What I'm trying to do is:
- access a function from DLL -- i.e. get shared_ptr<function_type>
- do something with the function
- cast the pointer into shared_ptr<void>
The last pointer will be stored in various places to keep the DLL in memory
until last object which depend on it is destroyed.
I think I can keep shared_ptr<function_type> everywhere, but can
shared_ptr<void> work somehow?
Thanks,
Volodya
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk