我可以转换boost shared_ptr到void*和回boost::shared_ptr?我需要这个,因为我需要将共享指针和回调函数传递给在C中实现的计时器函数.在回调中我需要将void*指针转换回来boost:shared_ptr.这样做给了我错误.
我尝试了一个示例程序.
#include <iostream>
#include <boost/shared_ptr.hpp>
using namespace std;
class A
{
public:
void f1() { cout<<"function f\n"; }
inx aa;
private:
};
void f2 (void *arg) {
boost::shared_ptr<A> b = ( boost::shared_ptr<A> *)(arg); //How to do this
}
int main ()
{
boost::shared_ptr<A> a (new A());
//void * ptr = (void *) &a;
f2( (&a));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
可以这样做boost::shared_ptr吗?
ybu*_*ill 14
再多一个星号:
boost::shared_ptr<A> b = *(boost::shared_ptr<A>*)(arg);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3361 次 |
| 最近记录: |