0
我试图重新从从代码的另一部分返回C指针一个UserEvent对象:OPENCL:从C风格的指针创建UserEvent
uintptr_t get_event_ptr(); // returns cl_event pointer to user event, comes from pyopencl
uintptr_t evt_ptr = get_event_ptr();
用C活动++具有下面的构造:
Event (const cl_event &event, bool retainObject=false)
但UserEvents没有这样的构造函数。所有他们需要的是:
UserEvent (const Context &context, cl_int *err=NULL)
UserEvent()
我试着做一个静态的演员阵容,重新解释演员和一个动态转换,但没有成功:
dynamic_cast
cl::UserEvent* ue = dynamic_cast<cl::UserEvent*> (new cl::Event(*((const cl_event*) evt_ptr)));
error: 'cl::Event' is not polymorphic
static_cast
cl::UserEvent* ue = static_cast<cl::UserEvent*> (new cl::Event(*((const cl_event*) evt_ptr)));
ue->setStatus(CL_COMPLETE);
Segmentation fault: 11
reinterpret_cast
cl::UserEvent* ue = reinterpret_cast<cl::UserEvent*> (new cl::Event(*((const cl_event*) evt_ptr)));
ue->setStatus(CL_COMPLETE);
Segmentation fault: 11
using parent constructor
cl::UserEvent* ue = new cl::UserEvent((const cl_event&)(*((const cl_event*) evt_ptr)));
error: no matching constructor for initialization of 'cl::UserEvent'
我怎样才能重新从C指针UserEvent?